フィルターのクリア

Array Aをソートしそれに合わせArray Bの順序を入れ換える

3 ビュー (過去 30 日間)
Takashi KOSHIMIZU
Takashi KOSHIMIZU 2019 年 1 月 5 日
コメント済み: Kazuya 2019 年 1 月 7 日
A = [2 4 5], B = [1.2 0.7 0.1]と与えられた2つのarrayが有ります。
Bは有る関数を元に、Aから生成された値です。
Bを昇順にsortし(結果[0.1 0.7 1.2]となる)、それに合わせarray-A要素順序を並び替える為の手順(code)を教えて下さい。
Aの並びは、[5 4 2]となるMatlabのcoding手法をお伺いしています。

採用された回答

Kazuya
Kazuya 2019 年 1 月 5 日
[B,I] = sort(___)
の構文で出力できる I を使えばOKです。
参照:sort 関数のヘルプページ https://jp.mathworks.com/help/matlab/ref/sort.html
A = [2 4 5];
B = [1.2 0.7 0.1];
[~,I] = sort(B);
A(I)
ans =
5 4 2
  2 件のコメント
Takashi KOSHIMIZU
Takashi KOSHIMIZU 2019 年 1 月 6 日
回答の投稿有難うございます。非常に参考になりました。
~の意味合いも理解させて頂きました。
Kazuya
Kazuya 2019 年 1 月 7 日
よかったです。sortrows 関数だと、行列や table 変数を特定の列のデータをもとに、マルっとソートできるので、より便利かもしれません。

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

その他の回答 (1 件)

madhan ravi
madhan ravi 2019 年 1 月 5 日
sort(A,'descend')
sort(B,'descend')

カテゴリ

Help Center および File Exchange行列および配列 についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!