1

たとえば、a = [1 1 2 2 7 7 7 10 10 10 10 11 15] というベクトルがあります。ソートされていない場合もありますが、ここではソート済みとして記述しています。上記を [1 1 2 2 3 3 3 4 4 4 4 5 6] に変換する Matlab コマンドを探しています。これを行う良い方法はありますか?

4

2 に答える 2

2

これを行うには少なくとも2つの方法があります

(1):の3番目の出力を使用しuniqueます

[~,~,out] = unique(a)

(2)grp2idx統計ツールボックスからの使用

out = grp2idx(a)
于 2012-04-13T01:32:24.987 に答える
0

1 つのコマンドだけで変換できるかどうかはわかりませんが、これは 1 つの方法です。

a = [1 1 2 2 7 7 7 10 10 10 10 11 15];

a = sort(a);
UniqVector = unique(a);
for i = 1:size(UniqVector, 2)
    a(a == UniqVector(i)) = i;
end
于 2012-04-13T00:20:03.907 に答える