Azzera filtri
Azzera filtri

Find function and storing in cell

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Walter Roberson
Walter Roberson il 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 Commenti
Morten Jørgensen
Morten Jørgensen il 21 Mar 2019
Thanks.
And how can I index the row numbers in a cell?
Walter Roberson
Walter Roberson il 25 Mar 2019
Modificato: Walter Roberson il 25 Mar 2019
mask = any(0 < X & X < 1, 2);
rows_with_match = find(mask);

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by