配列の昇順/降順の順番付け

以下の配列Aについて考える.確認しやすいように値を設定した.

A = [0.4, 0.6, 0.2, 0.3, 0.5, 0.1];

それぞれが全体の中で昇順で何番目になるかを求めたい.つまり,

X = [  4,   6,   2,   3,   5,   1]

という配列をつくりたい.
sortの2つめの引数は,

>> [B,I] = sort(A,'ascend')
I = [6 3 4 1 5 2]

のように,昇順で並べ替えるためのインデックス,B = A(I)となるようなIが返される.
このIをさらにsortをかければ,希望の配列が得られる.

>> [~,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
Last-modified: 2017-11-29 (Wed) 02:31:59 (2567d)