Problem with ismember function
조회 수: 12 (최근 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에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!