我有一个向量,例如:a = [1 1 2 2 7 7 7 10 10 10 10 11 15]。它可以是未分类的,但在这里我将其编写为已排序。我正在寻找一个Matlab命令,将上述转换为[1 1 2 2 3 3 3 4 4 4 4 5 6]。有没有办法做到这一点?
答案 0 :(得分:2)
至少有两种方法可以做到这一点
(1)使用unique
的第三个输出:
[~,~,out] = unique(a)
(2)使用统计工具箱中的grp2idx
out = grp2idx(a)
答案 1 :(得分: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