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,:); % 去掉重復數據