problem with the setdiff function
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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?
2 commentaires
Réponse acceptée
Azzi Abdelmalek
le 17 Mar 2014
Modifié(e) : Azzi Abdelmalek
le 17 Mar 2014
3 commentaires
Azzi Abdelmalek
le 17 Mar 2014
Modifié(e) : Azzi Abdelmalek
le 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)=[]
Plus de réponses (1)
Jos (10584)
le 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)
Voir également
Catégories
En savoir plus sur Data Import from MATLAB dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!