如何根据其独特元素重新缩放数组?
How to re-scale an array according to its unique elements?
我想将 0
内的数组重新缩放为 n-1
,其中 n
是数组的唯一元素数。例如,如果数组有 4 个独特的元素,如下所示:
array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6]
然后输出将在 0
到 3
范围内重新缩放。所以对于上面的数组,它将是:
output =[0; 0; 0; 1; 1; 1; 1; 2; 2; 2; 3; 3]
怎么做?
如果您想用 0 到唯一值总数减 1 之间的数字替换每个唯一值,并按照它们在数组中首次出现的顺序标记它们,那么您可以使用函数 unique
像这样:
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
我想将 0
内的数组重新缩放为 n-1
,其中 n
是数组的唯一元素数。例如,如果数组有 4 个独特的元素,如下所示:
array = [0; 0; 0; 3; 3; 3; 3; 5; 5; 5; 6; 6]
然后输出将在 0
到 3
范围内重新缩放。所以对于上面的数组,它将是:
output =[0; 0; 0; 1; 1; 1; 1; 2; 2; 2; 3; 3]
怎么做?
如果您想用 0 到唯一值总数减 1 之间的数字替换每个唯一值,并按照它们在数组中首次出现的顺序标记它们,那么您可以使用函数 unique
像这样:
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