[英]Sorting the columns of a matrix by “largest element” in matlab
在Matlab中,如何按給定列中的最大元素按升序對矩陣列進行排序。
例如,給定矩陣A = [1300 5; 100 1 2; 2 200 7],我想輸出A = [300 1 5; 1100 2; 200 2 7]。
我可以使用for循環來執行此操作,但是我一直在尋找應該在matlab中執行任何操作的矩陣運算的想法,對此我一直感到困惑。
在A中的每列中找到最大值並對其進行排序。 我們需要排序的索引( I
)。
>> [sortedmaxs,I]=sort(max(A,[],1),'descend')
sortedmaxs =
300 100 7
I =
2 1 3
根據索引I
對A
進行排序:
>> Asort=A(:,I)
Asort =
300 1 5
1 100 2
200 2 7
簡而言之,您只需要這兩行:
[~,I]=sort(max(A,[],1),'descend');
Asort=A(:,I);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.