如何用NumPy实现MATLAB中按列查找矩阵最大值索引的功能?
在Python中实现MATLAB
max(R2) 按列取最大值索引的功能 你的问题核心是numpy的argmax默认会将多维数组展平后返回全局最大值的索引,而MATLAB的max默认按列计算最大值索引。只需给np.argmax指定axis参数即可实现对应功能:
解决方案代码
import numpy as np # 假设R2是形状为(18, 122880)的numpy数组 indk = np.argmax(R2, axis=0)
说明
axis=0表示沿着数组的第一个维度(行维度)计算最大值的索引,会对每一列单独处理,最终得到的indk是长度为122880的一维数组,和MATLAB中[~, indk] = max(R2)的输出结构一致。- 如果你需要严格匹配MATLAB的1×122880二维行向量形式,可使用
indk.reshape(1, -1)转换形状。
内容的提问来源于stack exchange,提问作者Victor Simonsson
相关产品推荐
相关产品推荐

