2012-10-12 64 views
2

我有一個矩陣(n x m)。我想知道,對於每一行,包含前兩個最大值的coloums的指標:獲得矩陣中的前兩個最大值

2 3 4 2 
2 4 7 1 
1 1 2 4 
5 5 9 6 
1 4 2 1 
9 8 1 2 

答案應該是:

2 3 
2 3 
3 4 
3 4 
2 3 
1 2 

如何我得到它matlab命令?我不想使用for循環。我嘗試過:

[x,y]=max(matrix') 
y=y'; 

y給了我最大元素的列表索引。現在我將這些元素設置爲零並重復說明,但我不知道該怎麼做。我treid:

matrix(:,y)=0; 

但它不起作用。

回答

6

如果A是你的矩陣,然後進行排序並挑選前兩個指數,

[a ix]=sort(A,2) 
ans= ix(:,end-1:end) 
+0

謝謝!有用!! –