1

假设我们有以下矩阵

1 3 6
5 4 7
5 3 9

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

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

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

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

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

4

2 回答 2

3

max您可以使用带有维度说明符的内置函数: max(x,[],dim).

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

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

     6
     7
     9
于 2013-05-20T14:47:16.540 回答
2

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

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

y = max(x')'

y =

   6
   7
   9

您甚至可以即时重新评估

x = max(x')'.
于 2013-05-20T14:35:19.510 回答