matlab如何获取矩阵每行最大元素的位置
时间: 2023-06-18 16:07:55 浏览: 109
matlab复变函数指数函数代码-matrix-est-maxelts:仅使用矩阵矢量乘积即可估计矩阵最大元素的MATLAB代码
可以使用`max`函数结合`find`函数来获取矩阵每行最大元素的位置。
具体操作如下:
1. 对矩阵进行每行最大值的计算,使用`max`函数,将结果存放在一个行向量中。
```matlab
[~,maxCol] = max(A,[],2);
```
2. 再使用`find`函数,查找矩阵中每行最大值的位置。
```matlab
rowIdx = repmat((1:size(A,1))',1,size(A,2));
idx = sub2ind(size(A),rowIdx,maxCol);
```
这里使用`repmat`函数将行向量复制多次,使得每个元素对应一行矩阵中的元素。然后使用`sub2ind`函数将矩阵下标转换为线性索引,得到每行最大值的位置。
完整代码如下:
```matlab
A = randi(10,4,5); % 生成一个4行5列的随机矩阵
[~,maxCol] = max(A,[],2); % 计算每行最大值所在的列
rowIdx = repmat((1:size(A,1))',1,size(A,2)); % 复制行向量
idx = sub2ind(size(A),rowIdx,maxCol); % 将矩阵下标转换成线性索引
[row,col] = ind2sub(size(A),idx); % 将线性索引转换为矩阵下标
disp([row col]); % 显示每行最大值的行和列下标
```
阅读全文