如何根据其独特元素重新缩放数组?

时间:2017-05-10 16:47:15

标签: arrays matlab unique

我想在0n-1内重新缩放数组,其中n是数组中唯一元素的数量。例如,如果数组有4个这样的唯一元素:

array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6]

然后输出将在03内重新调整。所以对于上面的数组,它将是:

output =[0; 0; 0; 1; 1; 1; 1; 2; 2; 2; 3; 3]

怎么做?

1 个答案:

答案 0 :(得分:3)

如果要将每个唯一值替换为从0到唯一值总数减1的数字,按照它们首次出现在数组中的顺序对它们进行标记,则可以使用函数的第三个输出{ {3}}喜欢这样:

array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6];
[~, ~, label] = unique(array, 'stable');
label = label-1;

label =

     0
     0
     0
     1
     1
     1
     1
     2
     2
     2
     3
     3