matlab:重复行删除

matlab:重复行删除,matlab,duplicates,duplicate-removal,Matlab,Duplicates,Duplicate Removal,昨天我问了一个问题,得到了一个关于删除矩阵中的加倍行的答案,我不明白为什么它会忽略矩阵中的某些行 使用矩阵: tmp2 = 0 1.0000 0.1000 1.0000 0.2000 1.0000 0.3000 1.0000 0.3000 2.0000 0.4000 2.0000 0.5000 2.0000 0.6000 2.0000 0.7000 2.0000 0.7000 3.0000 0.8000 3.0000

昨天我问了一个问题,得到了一个关于删除矩阵中的加倍行的答案,我不明白为什么它会忽略矩阵中的某些行

使用矩阵:

tmp2 =

     0    1.0000
0.1000    1.0000
0.2000    1.0000
0.3000    1.0000
0.3000    2.0000
0.4000    2.0000
0.5000    2.0000
0.6000    2.0000
0.7000    2.0000
0.7000    3.0000
0.8000    3.0000
0.9000    3.0000
1.0000    3.0000
1.1000    3.0000
1.2000    3.0000
我需要删除这些行:

0.3000    2.0000    
0.7000    3.0000
我试着用它来做

[~,b] = unique(tmp2(:,1));
tmp2(b,:) 
我自己写了一些东西

tmp3 = [];

for i=1:numel(tmp2(:,1))-1
    if tmp2(i,1) == tmp3    
        tmp2(i,:) = [];
    end
    tmp3 = tmp2(i,1);
end

但是所有的方法似乎都忽略了要删除的第一行。。。请帮忙,因为我已经花了几个小时试图自己修复它(我在编程方面很差劲…),但似乎什么都不管用。矩阵就是一个例子,但通常情况下,如果两行在第一列中具有相同的值,我必须删除第二行,因为您在正确的轨道上

tmp2 = [...
0 1
1 1
2 3
2 5
3 5
4 7
5 4
5 8
6 1
];
现在像以前一样调用
unique
,但使用标志
first
获取第一个唯一的:

[~,li]=unique(tmp2(:,1),'first');
tmp_unique = tmp2(li,:);