我有一個矢量M
與多個重複的可能性,我想創建一個索引矢量,忽略所有重複。我試過[C,ia,ib] = unique(M)
,但我不太清楚如何使用ia和ib。在matlab矢量中查找唯一索引?
編輯:對不起,我錯過了一個重要的細節,I
是一個現有的索引向量,它需要擺脫包含重複值的所有索引。所以原來的矢量看起來像M(I)
,我想「清理」了I
,我要是直接IA =我不會保留的一
我有一個矢量M
與多個重複的可能性,我想創建一個索引矢量,忽略所有重複。我試過[C,ia,ib] = unique(M)
,但我不太清楚如何使用ia和ib。在matlab矢量中查找唯一索引?
編輯:對不起,我錯過了一個重要的細節,I
是一個現有的索引向量,它需要擺脫包含重複值的所有索引。所以原來的矢量看起來像M(I)
,我想「清理」了I
,我要是直接IA =我不會保留的一
原始數據從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)
。
您可以使用可選輸出。
a=round(10*rand(1,10))
[dummy I]=unique(a,'first');
u=a(sort(I));
謝謝你解決了我的問題! – Bonk 2012-03-18 21:29:33