📅  最后修改于: 2023-12-03 14:55:56.165000             🧑  作者: Mango
在 MATLAB 中,我们可能需要找出矩阵中每行的最大值所在的列。这里给出两种实现方法。
我们可以使用 max
函数,结合 find
函数,找出每行最大值所在的列。
A = magic(4); % 生成一个 4x4 的矩阵,用于示例
[max_value, col_index] = max(A, [], 2);
函数 max
的第二个参数指定找每行的最大值。第三个参数为 2 表示沿着列的方向进行查找。函数 find
则是用于找出最大值所在的列号。我们也可以使用一个更简单的语句,将 max
的输出赋值给行向量。
[col_value, col_index] = max(A');
此时的 max
函数默认找每列的最大值,输出的 col_value
即为每行的最大值,col_index
为每行最大值所在的列号。
对于大型矩阵,方法一可能较为耗时。另一种思路是,使用逐行查找的方式,只需要遍历矩阵一次。
A = magic(4); % 生成一个 4x4 的矩阵,用于示例
[row, col] = size(A);
max_column = zeros(row, 1);
for ii = 1:row
[max_value, max_column(ii)] = max(A(ii, :));
end
这里使用了一个循环语句,逐行遍历矩阵。在每行查找出最大值后,将其所在的列号存入行向量 max_column
中。这样做的好处是,减少了 max
函数的调用次数。
以上两种方法都可以找出每行的最大值所在的列,根据实际情况选择适合自己的方式即可。