我有一个向量M
,可能有多个重复项,我想创建一个忽略所有重复项的索引向量。我试过[C,ia,ib] = unique(M)
,但我不太清楚如何使用ia和ib。
编辑:抱歉,我错过了一个重要的细节,I
是一个现有的索引向量,它需要摆脱包含重复值的所有索引。因此,原始矢量看起来像M(I)
,我想要“清理”I
,如果我直接执行ia = I,它将不会保留I的原始数据。
答案 0 :(得分:2)
来自http://www.mathworks.co.uk/help/techdoc/ref/unique.html:
[C,ia,ic] = unique(A)
还会返回索引向量ia
和ic
,例如C = A(ia)
和A = C(ic)
。
例如:
[C ia ic] = unique([11 22 11 33 22 44])
结果:
C =
11 22 33 44
ia =
3 5 4 6
ic =
1 2 1 3 2 4
<强>更新强>
在更新的方案中,您应该I = I(ia)
。
答案 1 :(得分:0)
您可以使用可选输出。
a=round(10*rand(1,10))
[dummy I]=unique(a,'first');
u=a(sort(I));