필터 지우기
필터 지우기

Logical indexing in maltab

조회 수: 1 (최근 30일)
Bharat
Bharat 2015년 6월 17일
댓글: James Tursa 2015년 6월 17일
Hello,
I need help regarding a code.:
Sal = para(i,7); y= X(X<Sal); this doesn't change the output
The vaulue of Sal is = 0.005. If I use this, then it returns the right value.
y = X(X<0.005); this returns the correct output.
How do I resolve this issue.
Thanks.
  댓글 수: 1
Stephen23
Stephen23 2015년 6월 17일
편집: Stephen23 2015년 6월 17일
Learn about binary floating point numbers, and how they cannot accurately represent all decimal fractions:
You might also like to try using this, to find out what the value really is:

댓글을 달려면 로그인하십시오.

답변 (2개)

James Tursa
James Tursa 2015년 6월 17일
If I understand your question, you are saying that y= X(X<Sal) returns a different result than y = X(X<0.005), even though Sal = 0.005.
I would hazard a guess that Sal is not really 0.005, but is a number close to 0.005 that displays the same as 0.005. What do you get with the following:
Sal == 0.005
  댓글 수: 3
Bharat
Bharat 2015년 6월 17일
I just checked. y=X(X<0.005010368459505) also doens't work. however y=X(X<0.005) works, which suggests that it related to number of significant digits. How do I change the number of significant digits?
Thanks
James Tursa
James Tursa 2015년 6월 17일
I think you now need to give us a more complete picture of what you are doing and what "doesn't work" means. If y=X(X<0.005) "works", then why aren't you doing that explicitly? Is the real problem that you need to round Sal to the nearest 3-decimal place number for some reason? Or what?

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2015년 6월 17일

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by