行列内の全ての要素を​比較して、降順に配列​を並べ替える方法

조회 수: 14 (최근 30일)
朋貴 熊田
朋貴 熊田 2024년 3월 14일
댓글: 朋貴 熊田 2024년 3월 15일
行列の配列を降順・昇順に並べ替えるのにsort関数があります。しかし、この関数では列方向や行方向の並べ替えのみであり、行列内全ての要素を加味した上での並べ替えを行う事が不可能であります。従って、行列の行方向、列方向を無視し、単純に全ての要素を降順に並べ替える方法をご教授頂けると幸いです。
例えば以下のような行列が合った時
A = [3 6 5; 7 -2 4; 1 0 -9]
A = 3×3
3 6 5 7 -2 4 1 0 -9
sort関数を使うとBになりますが
B=sort(A,'descend')
B = 3×3
7 6 5 3 0 4 1 -2 -9
以下のDのように、全ての行列要素を加味した上で並べ替えたいです。
C=[7 6 5 4 3 1 0 -2 -9]
C = 1×9
7 6 5 4 3 1 0 -2 -9
D=[7 6 5 ; 4 3 1; 0 -2 -9]
D = 3×3
7 6 5 4 3 1 0 -2 -9

채택된 답변

Atsushi Ueno
Atsushi Ueno 2024년 3월 14일
A = [3 6 5; 7 -2 4; 1 0 -9];
E = sort(A(:),'descend')' % 転置の理由:単に行数を少なくする為
E = 1×9
7 6 5 4 3 1 0 -2 -9
F = reshape(E,size(A))' % 転置の理由:MATLABは列優先だから
F = 3×3
7 6 5 4 3 1 0 -2 -9
  댓글 수: 1
朋貴 熊田
朋貴 熊田 2024년 3월 15일
ご返信ありがとうございます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!