# Find function and storing in cell

2 views (last 30 days)
Morten Jørgensen on 21 Mar 2019
Edited: Walter Roberson on 25 Mar 2019
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
madhan ravi on 21 Mar 2019
[x,y] =find(X>0 & X<1);

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 CommentsShow 1 older commentHide 1 older comment
Walter Roberson on 25 Mar 2019
Edited: Walter Roberson on 25 Mar 2019
mask = any(0 < X & X < 1, 2);