2013-05-20 24 views
1

假設我們有以下的矩陣Assiging一列的最大值的行

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

如果我理解正確你的問題,你可以只使用max功能。它自然在柱子上運行,因此,一些換位是必要的。

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

y = max(x')' 

y = 

    6 
    7 
    9 

,你甚至可以在飛行reassing值

x = max(x')'. 
+0

感謝您的答覆。我如何分配相關行的每個最大值,如我的問題所示? – Simplicity

+0

原則上'x'是一個矩陣,而'maximum'是一個數組。如果你想寫在'x'上,你應該用矩陣的方式寫(2個索引,即* 2d類似的入口*)。 如果你做'y = max(x')'',那麼'y(1)= 6','y(2)= 7' ...如你所願 – Acorbe

3

您可以使用內置max功能與維度符:max(x,[],dim)

在你的情況,假設你的矩陣稱爲A

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

    6 
    7 
    9