Evaluating a function using the subs

Why does the following fail to evaluate the function at x==6 and x==9?
p = 5E-3; L = 50E-3; x = 0:p:L; Q = x; y = Q(x==6*p)

답변 (1개)

Star Strider
Star Strider 2017년 11월 15일

0 개 추천

If you run this:
Check = x - 6*p
you will see that it never evaluates to 0, so the condition is never met. This is called ‘floating-point approximation error’. The usual way of describing it is to note that in decimal notation, 1/3 evaluates to 0.3333... and multiplying that by 3 yields 0.9999..., not 1.
See Why is 0.3 - 0.2 - 0.1 (or similar) not equal to zero? (link) for a more thorough explanation.

카테고리

도움말 센터File Exchange에서 Data Types에 대해 자세히 알아보기

질문:

2017년 11월 15일

답변:

2017년 11월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by