Problem with ismember function
15 次查看(过去 30 天)
显示 更早的评论
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 个评论
Jan
2017-6-26
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
2017-6-26
"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:
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!