simple formula to remove rows with repeated values in N x 2 matrix

조회 수: 1 (최근 30일)
LO
LO 2019년 4월 12일
답변: Star Strider 2019년 4월 12일
I have a set of XY coordinates in a N x 2 matrix
I would like to remove those pairs in which X values are the same
I do not want to use the "unique" function (I tried it but it does not work, perhaps my X values are not exactly the same although they look like they are) and I would not like to use a complicated series of commands...
the code I am using now is
X1=ampl1;
Y1=width1;
A1=[X1;Y1]';
[UniXY,Index]=unique(A1,'rows');
DupIndex=setdiff(1:size(A1,1),Index);
A1(DupIndex,:)=[];
ampl1=A1(:,1)';
widths1=A1(:,2)';
it seems to work for discrete finite values but somehow for my case, it does not work.
I would not mind to round my values but I would like to keep at least 2-3 decimals

채택된 답변

Star Strider
Star Strider 2019년 4월 12일
The uniquetol (link) function (introduced in R2015a) allows you to set a tolerance. Also, setdiff does not have a tolerance option, although ismembertol does.
See if those do what you want.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by