我正在使用 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 ~ 1 000 000
- K ~ 10 000
最佳答案
使用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
关于matlab - 重新标记矩阵,用 1..N 替换所有唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914414/