簡體   English   中英

在Matlab中按“最大元素”對矩陣的列進行排序

[英]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

根據索引IA進行排序:

>> 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM