How to Sort Matrix Rows from Highest to Lowest

8 ビュー (過去 30 日間)
Brian
Brian 2024 年 7 月 30 日
コメント済み: Stephen23 2024 年 7 月 31 日
Simplied my problem so it's easier to solve. Let's pretend I have MatrixA that has 2 columns, and I want to sort the rows from highest to lowest depending on the value of the cell in the second column. How would I do this?
I also have a VectorB that starts at 10 and would like to add the value of each row in column 2 of the sorted MatrixA. How would I do this? Note this needs to come after MatrixA is sorted from highest to lowest.
Any suggestions matlab wizards out there? Really want to avoid using loops to make the code inefficient.
%Just creating example of the matrix I want to sort you can ignore this
MatrixA = cell(3,2);
MatrixA{1,1} = "D1";
MatrixA{2,1} = "D2";
MatrixA{3,1} = "D3";
MatrixA{1,2} = 5;
MatrixA{2,2} = 15;
MatrixA{3,2} = 10;
% Creating Vector B based on the already defined values for MatrixA which aren't in order
VectorA = [10 10+MatrixA{1,2} 10+MatrixA{2,2} 10+MatrixA{3,2}];
% How would I sort MatrixA from highest to lowest here and the values of VectorB to be based on the sorted MatrixA?
  1 件のコメント
Stephen23
Stephen23 2024 年 7 月 31 日
"How would I do this?"
By using a table, which would suit your data better.

サインインしてコメントする。

回答 (2 件)

Walter Roberson
Walter Roberson 2024 年 7 月 30 日
MatrixA = cell(3,2);
MatrixA{1,1} = "D1";
MatrixA{2,1} = "D2";
MatrixA{3,1} = "D3";
MatrixA{1,2} = 5;
MatrixA{2,2} = 15;
MatrixA{3,2} = 10;
T = cell2table(MatrixA)
T = 3x2 table
MatrixA1 MatrixA2 ________ ________ "D1" 5 "D2" 15 "D3" 10
sortrows(T, 2, 'descend')
ans = 3x2 table
MatrixA1 MatrixA2 ________ ________ "D2" 15 "D3" 10 "D1" 5

dpb
dpb 2024 年 7 月 30 日
編集済み: dpb 2024 年 7 月 31 日
It's not clear about B, but
A = cell(3,2);
A(:,1)=cellstr("D"+[1:3]);
A(:,2)={5;15;10};
A=sortrows(A,2,'descend')
A = 3x2 cell array
{'D2'} {[15]} {'D3'} {[10]} {'D1'} {[ 5]}
B=10+[A{:,2}].'
B = 3x1
25 20 15
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
if I interpret the intent for B corrrectly.

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by