将列的最大值分配给该行

时间:2013-05-20 14:28:14

标签: matlab max

假设我们有以下矩阵

1 3 6
5 4 7
5 3 9

我要做的是每行,我为其分配列的maximum值。所以,例如,我期待以下输出:

x(1) = 6
x(2) = 7
x(3) = 9

我尝试通过编写下面的代码来实现这一点,但没有得到预期的putput:

x=[1 3 6;5 4 7; 5 3 9]
[rows, columns] = size(x);
for i=1:columns
    for j=1:rows
        [maximum, position] = max(x(j,:));
        disp('MAXIMUM')
        x(j)=maximum
    end
end

我该怎么做才能获得预期的输出?

2 个答案:

答案 0 :(得分:3)

您可以将内置max函数与维度说明符max(x,[],dim)一起使用。

在您的情况下,假设您的矩阵被称为A

>> x=max(A,[],2)
ans =

     6
     7
     9

答案 1 :(得分:2)

如果我正确理解了您的问题,您可以使用max功能。它自然地在柱子上运行,因此,一些转换是必要的。

x=[1 3 6;5 4 7; 5 3 9]

y = max(x')'

y =

   6
   7
   9

您甚至可以动态地重新定位值

x = max(x')'.