Problem with ismember function
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Kyana Shayan
am 26 Jun. 2017
Kommentiert: Stephen23
am 26 Jun. 2017
Dear all, Hello,
I am writing a simple function of ismember to check if an element in one matrix matches the one in another matrix, however it returns 0, although I am sure the value matches. Assume I have a array of "omega". The third element is equal to 0.1047. And I have another matrix "wt", with first element, 0.1047 and when I write
z=ismember(omega,wt,'rows')
it returns a zero at z(3). Hence, I have:
omega(3)=0.1047;
wt(1)=0.1047;
I expect:
z(3)=1;
but it gives:
z(3)=0;
I must say that it returns 1 for omega(4) which is 0.1571 and equals the wt(2).
Thank you for your help.
Cheers,
2 Kommentare
Jan
am 26 Jun. 2017
Test this manually:
omega(3) - wt(1)
Is this really exactly 0? Note that the limited output of numbers in Matlab's command window let 0.1047 and 0.104699999999999 appear equally, althout the numbers are different.
Stephen23
am 26 Jun. 2017
"Problem with ismember function"
There is no problem with ismember. You need to learn about the practical limits of floating point numbers:
And some external links on this topic:
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!