3

私はMATLABを使用しています。N私は数字で満たされた要素を持つ行列を持っていますが、それらの間には一意の数字[1; N]しかありません(はよりもはるかに小さいです)。数値のみを含むように行列を再ラベル付けする効率的な方法は何ですか? 等しい数は等しくなるはずであり、等しくないものは等しくならないはずです。KKN[1; K]

N = 10、 の例K = 4:

[1 4 8 9 4 1 8 9 4 1] -> [1 2 3 4 2 1 3 4 2 1]
  • N ~ 1 000 000
  • K ~ 10 000
4

1 に答える 1

8

の 3 番目の出力引数を使用しますunique

a=[1 4 8 9 4 1 8 9 4 1];
[~, ~, b] = unique(a)
b =
     1     2     3     4     2     1     3     4     2     1
于 2012-12-17T12:54:21.380 に答える