About logical calculation. Is this a bug?

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

1 Comment

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

Sign in to comment.

 Accepted Answer

Adam Danz
Adam Danz on 14 Jan 2020
Edited: Adam Danz on 14 Jan 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 Comments

Oh. I see. Thank you.
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.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2019b

Asked:

on 14 Jan 2020

Commented:

on 14 Jan 2020

Community Treasure Hunt

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

Start Hunting!