problem with the setdiff function
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
alex
el 17 de Mzo. de 2014
Comentada: alex
el 17 de Mzo. de 2014
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 comentarios
Respuesta aceptada
Azzi Abdelmalek
el 17 de Mzo. de 2014
Editada: Azzi Abdelmalek
el 17 de Mzo. de 2014
3 comentarios
Azzi Abdelmalek
el 17 de Mzo. de 2014
Editada: Azzi Abdelmalek
el 17 de Mzo. de 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)=[]
Más respuestas (1)
Jos (10584)
el 17 de Mzo. de 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)
Ver también
Categorías
Más información sobre Data Import from MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!