重新标记矩阵,用1..N替换所有唯一数字

时间:2012-12-17 12:44:19

标签: matlab image-processing image-segmentation

我正在使用MATLAB。我有一个矩阵,N个元素填充了数字[1; N],但它们之间只有K个唯一编号(K远小于N)。什么是重新标记矩阵的高效方式,以便它只包含数字[1; K]?等数应该相等,不相等应该变得不相等。

N = 10K = 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

1 个答案:

答案 0 :(得分:8)

使用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