a(a(a>3)<10) = OK ; a(a>3 && a<10) = wrong!, the correct way?

1 Ansicht (letzte 30 Tage)
Leotsing
Leotsing am 27 Feb. 2017
Bearbeitet: Leotsing am 27 Feb. 2017
a=[1 2 3 4 11 33]; I want to get the number in a from 4-9; a(a(a>3)<10) is right; a(a>3 && a<10) is wrong -- is there other correct way to make this ?

Akzeptierte Antwort

Alexandra Harkai
Alexandra Harkai am 27 Feb. 2017
If you want to get only values between 3 and 10 (excluding the endpoints), the correct way would be:
a(a>3 & a<10)
(Not exactly sure what you meant by 'OK' but a(a(a>3)<10) definitely gives some unexpected results.)
  2 Kommentare
John D'Errico
John D'Errico am 27 Feb. 2017
Note that Alexandra used a single & operator there. This is correct when you are anding together boolean vectors. Use && only in things like a test in an if statement.
Leotsing
Leotsing am 27 Feb. 2017
Bearbeitet: Leotsing am 27 Feb. 2017
thank you and other people answered! that"OK" means it works well to the result,but I think it is not good,so I asked.BTW, I also thought about FIND function,but never come to "&" .thank you again!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Modeling finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by