Matlab 重新标记矩阵,将所有唯一数字替换为1..N
我正在使用MATLAB。我有一个矩阵,其中有Matlab 重新标记矩阵,将所有唯一数字替换为1..N,matlab,image-processing,image-segmentation,Matlab,Image Processing,Image Segmentation,我正在使用MATLAB。我有一个矩阵,其中有N元素,元素中填充了数字[1;N],但它们之间只有K唯一的数字(K比N小得多)。什么是重新标记矩阵的有效方法,以便它只包含数字[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~1000 000 K~10000 使用unique的第三个输出参数: a=[1 4 8 9 4 1 8 9 4 1]; [~, ~,
N
元素,元素中填充了数字[1;N]
,但它们之间只有K
唯一的数字(K
比N
小得多)。什么是重新标记矩阵的有效方法,以便它只包含数字[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~1000 000
- K~10000
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
刚刚意识到,如果输入中有NAN,这将不起作用,因为unique
将为它们分配所有不同的数字。也许这对你来说不是问题。是的,这对我来说不是问题。