Evaluating a function using the subs

1 vue (au cours des 30 derniers jours)
Sincx
Sincx le 15 Nov 2017
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)

Réponses (1)

Star Strider
Star Strider le 15 Nov 2017
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.

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by