#author("2021-11-16T01:03:15+09:00","default:Miyashita","Miyashita")
*配列の順番付け [#l3219369]
#author("2021-11-16T01:04:17+09:00","default:Miyashita","Miyashita")
*配列の昇順/降順の順番付け[#l3219369]
以下の配列Aについて考える.確認しやすいように値を設定した.
#codeprettify(lang-matlab){{
A = [0.4, 0.6, 0.2, 0.3, 0.5, 0.1];
}}
それぞれが全体の中で昇順で何番目になるかを求めたい.つまり,~
#codeprettify(lang-matlab){{
X = [  4,   6,   2,   3,   5,   1]
}}
という配列をつくりたい.~
sortの2つめの引数は,~
#codeprettify(lang-matlab){{
>> [B,I] = sort(A,'ascend')
I = [6 3 4 1 5 2]
}}
のように,昇順で並べ替えるためのインデックス,B = A(I)となるようなIが返される.~
このIをさらにsortをかければ,希望の配列が得られる.
#codeprettify(lang-matlab){{
>> [~,X] = sort(I,'ascend')
X = [4 6 2 3 5 1]
}}
sortの部分をascend(デフォルト)ではなくてdescendにすれば降順になり,値の高いものからナンバリングされた配列が作成される.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes