我有一个向量,例如:a = [1 1 2 2 7 7 7 10 10 10 10 11 15]。它可以是未排序的,但在这里我将其写为已排序。我正在寻找一个将上述转换为 [1 1 2 2 3 3 3 4 4 4 4 5 6] 的 Matlab 命令。有没有好的方法来做到这一点?
问问题
1045 次
2 回答
2
至少有两种方法可以做到这一点
(1) 使用第三个输出unique
:
[~,~,out] = unique(a)
(2)grp2idx
从统计工具箱中使用
out = grp2idx(a)
于 2012-04-13T01:32:24.987 回答
0
我不确定是否可以仅使用一个命令进行转换,但这是一种方法:
a = [1 1 2 2 7 7 7 10 10 10 10 11 15];
a = sort(a);
UniqVector = unique(a);
for i = 1:size(UniqVector, 2)
a(a == UniqVector(i)) = i;
end
于 2012-04-13T00:20:03.907 回答