problem with the setdiff function
9 views (last 30 days)
Show older comments
Hello!
i have a problem here
A = 2:.1:15
B=[9.4000 10.4000]
C=setdiff(A,B)
the elements 9.4000 and 10.4000 are still in the C
however,if B=[9.3000 10.3000] then the setdiff works fine,and the elements are not in the C.
any idea why this happens?
Accepted Answer
Azzi Abdelmalek
on 17 Mar 2014
Edited: Azzi Abdelmalek
on 17 Mar 2014
3 Comments
Azzi Abdelmalek
on 17 Mar 2014
Edited: Azzi Abdelmalek
on 17 Mar 2014
Use some tolerance
A = 2:.1:15
B=[9.4000 10.4000 1000]
tol=0.0001
s=abs(bsxfun(@minus,A',B))<tol
[ii,jj]=find(s==1);
A(ii)=[]
More Answers (1)
Jos (10584)
on 17 Mar 2014
A = 2:.1:15
B = [9.4000 10.4000]
D = 2 ; % number of digits that should match (e.g. 1.231 = 1.229)
C = setdiff(round(A*10^D),round(B*10^D)) ./ (10^D)
See Also
Categories
Find more on Data Import from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!