matlab利用unique()函數去除重復數據


K>> a_12=[16,7;5,6;7,8;10,12;5,6;9,10]

a_12 =

16 7
5 6
7 8
10 12
5 6
9 10

K>> [ha,ha_1,ha_2]=unique(a_12,'rows','stable')

ha =

16 7
5 6
7 8
10 12
9 10

可見,ha返回的是去除重復數據后的結果。
ha_1 =

1
2
3
4
6

可見,ha_1返回的是去除重復數據后的數據在原始數據中的索引值。
ha_2 =

1
2
3
4
2
5

可見,ha_2返回的是去除重復數據前的數據在原始數據中的索引值。

 

K>> a_12(ha_1,:)

ans =

16 7
5 6
7 8
10 12
9 10

利用去除重復數據后的數據在原始數據中的索引可以得到去除重復數據后的數據。

注意: 假如數據是3列,x、y列數據相同,z數據不同的時候,此時也想去掉前兩列有重復的數據,那么就用這樣的方式:[ha,ha_1,ha_2]=unique(a_12(:,1:2),'rows','stable') % 這個即是說,根據前兩列的數據去除重復數據。

 

 

    referline=sortrows(referline,1);%排序
    [ha,ha_1,ha_2]=unique(referline(:,1:2),'rows','stable');% 去掉重復數據
    referline=referline(ha_1,:); % 去掉重復數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM