Hi,
I am seeing a strange result in matlab using the OR operator.
This is what I am seeing:
K>> 5==1|2
ans =
1
I must be doing something wrong, but can't figure out what. Any ideas?

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 8 Juil 2014

2 votes

This is correct
5==1
The result is 0
0|2
the result is 1

4 commentaires

Azzi Abdelmalek
Azzi Abdelmalek le 8 Juil 2014
Maybe you want
(5==1)|(5==2)
which gives 0
Adam
Adam le 9 Juil 2014
You are correct, I needed the 5==1|5==2 format. Thank you for your response.
Just out of curiosity, what is the other format doing, i.e. why does 5==1|2 result in true?
Azzi Abdelmalek
Azzi Abdelmalek le 9 Juil 2014
5==1|2
is the same then
(5==1)|2
Matlab consider each number different from zero as true
5==1 % is false
2 % is true
false | true %will give true
James Tursa
James Tursa le 9 Juil 2014
Modifié(e) : James Tursa le 9 Juil 2014
5==1 is done first and results in a logical value 0 (i.e., false)
Then 0|2 is done next. It is a logical OR and also returns a logical result. If either of the inputs is non-zero, then the result will be 1 (i.e., true), so that is what you get for your example.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Entering Commands dans Centre d'aide et File Exchange

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by