About logical calculation. Is this a bug?

3.jpg
what happened to this case? Is this a matlab bug?

1 comentario

Jingli Xie
Jingli Xie el 14 de En. de 2020
logical should be 1 at the lower left corner of the picture.
-1<p_grad == 1, p_grad < 1 ==1, bug -1<p_grad<1 == 0

Iniciar sesión para comentar.

 Respuesta aceptada

Adam Danz
Adam Danz el 14 de En. de 2020
Editada: Adam Danz el 14 de En. de 2020
The operation
p_grad = 1.1200e-17;
-1 < p_grad < 1
works from left-to-right. It is interpretted as
p_grad = 1.1200e-17;
(-1 < p_grad) < 1
which is simplified to
1 < 1
which equals 0 (false).
To determine if p_grad is between -1 and 1, (parentheses optional)
(-1 < p_grad) && (p_grad < 1) % for scalar values
(-1 < p_grad) & (p_grad < 1) % for non-scalar values or when
% number of element is unknown

3 comentarios

Jingli Xie
Jingli Xie el 14 de En. de 2020
Oh. I see. Thank you.
Steven Lord
Steven Lord el 14 de En. de 2020
If I remember correctly, as of release R2019b if you try to use that idiom in a file in the Editor Code Analyzer will warn you that it doesn't do what you think it does.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2019b

Preguntada:

el 14 de En. de 2020

Comentada:

el 14 de En. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by