在matlab向量中查找唯一索引?

时间:2012-03-18 19:38:10

标签: matlab vector

我有一个向量M,可能有多个重复项,我想创建一个忽略所有重复项的索引向量。我试过[C,ia,ib] = unique(M),但我不太清楚如何使用ia和ib。

编辑:抱歉,我错过了一个重要的细节,I是一个现有的索引向量,它需要摆脱包含重复值的所有索引。因此,原始矢量看起来像M(I),我想要“清理”I,如果我直接执行ia = I,它将不会保留I的原始数据。

2 个答案:

答案 0 :(得分:2)

来自http://www.mathworks.co.uk/help/techdoc/ref/unique.html

  

[C,ia,ic] = unique(A)还会返回索引向量iaic,例如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));