how to delete repeated rows in a table?
17 次查看(过去 30 天)
显示 更早的评论
I have an array M below. There are some repeated values in column 1. I would like to write a code that deletes all the rows that have repeated values in column 1. The final answer should be [518640 5.959; 522225 8.988].
This is a sample dataset. My actual data has more than 50,000 rows, and I need to delete all the repeated data. Thanks.
M = [518460 3.322; 518460 -12.984; 518520 3.798; 518520 -10.28; 518580 7.763; 518580 16.851; 518640 5.959; 522225 8.988];
0 个评论
采纳的回答
per isakson
2021-9-24
编辑:per isakson
2021-9-27
Test this
%%
M = [518460 3.322; 518460 -12.984; 518520 3.798; 518520 -10.28; 518580 7.763; 518580 16.851; 518640 5.959; 522225 8.988];
%%
[~,ixu] = unique( M(:,1), 'stable' );
M(ixu,:)
In response to comment
If everything fails, try a for-loop
for jj = 1 : size(M,1)
ixm = find( M(jj,1) == M(:,1) );
if numel(ixm) >= 2
M(ixm,1) = nan;
end
end
M( isnan(M(:,1)), : ) = []
3 个评论
更多回答(1 个)
Walter Roberson
2021-9-27
format long g
M = [518460 3.322; 518460 -12.984; 518520 3.798; 518520 -10.28; 518580 7.763; 518580 16.851; 518640 5.959; 522225 8.988]
[~, ia] = unique(M(:,1), 'stable');
M = M(ia,:)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!