Find function and storing in cell

2 views (last 30 days)
Hi
I'm trying to write a program that stores the values 0 < X < 1
I have an array X wich are 15000x14 and I want to store the row numbers in a cell every time the values are between 0 and 1
in some cases there are multiple values that 0 < X < 1
How should I write this?
[x,y] =find(0 < X < 1);
when I do this it still gives me numbers that are negative
Thanks Morten

Accepted Answer

Walter Roberson
Walter Roberson on 21 Mar 2019
In MATLAB, except for some symbolic contexts, the expression 0 < X < 1 is parsed as ((0 < X) < 1) . The 0 < X part is done first and gives a result that is either 0 (false) or 1 (true). Then that 0 or 1 is compared < 1 and that is going to give 0 where the result of the first comparison was true (because 1 < 1 is false) and 1 where the result of the first comparison was true (because 0 < 1 is true.)
You need to use 0 < X & X < 1
  2 Comments
Morten Jørgensen
Morten Jørgensen on 21 Mar 2019
Thanks.
And how can I index the row numbers in a cell?
Walter Roberson
Walter Roberson on 25 Mar 2019
Edited: Walter Roberson on 25 Mar 2019
mask = any(0 < X & X < 1, 2);
rows_with_match = find(mask);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!