📜  每行matlab的最大值列 (1)

📅  最后修改于: 2023-12-03 14:55:56.165000             🧑  作者: Mango

每行 MATLAB 的最大值列

在 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 函数的调用次数。

以上两种方法都可以找出每行的最大值所在的列,根据实际情况选择适合自己的方式即可。