たとえば、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 コマンドを探しています。これを行う良い方法はありますか?
質問する
1045 次
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 に答える