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

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