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

1 view (last 30 days)
Leotsing on 27 Feb 2017
Edited: Leotsing on 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 ?

Alexandra Harkai on 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.)
John D'Errico on 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 on 27 Feb 2017
Edited: Leotsing on 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!

Categories

Find more on Modeling in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!