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,:); % 去掉重复数据

 

posted on 2021-12-24 15:08  一杯明月  阅读(2349)  评论(0编辑  收藏  举报