Problem with find and logical array
Afficher commentaires plus anciens
Hi,
I have a matrix with the values : A = [260,343; 344,433; 434,530; 531,631; 632,723];
where A(:,1) is the lower range and A(:,2) = upper range for each row. I am trying to find the index of A where a number may exist within the upper and lower range.
For ex. I tried B = (443 > A(:,1) & A(:,2) > 443) to check in which row the number 443 would lie, but got the ans as 0, even though when B comes as = [0,0,1,0,0]. I performed index = find(B),
I am probably doing something stupid. What am I doing wrong?
Thanks, Urvashi
3 commentaires
José-Luis
le 6 Juin 2014
I don't understand. The function seems to do exactly what you want it to do, according to your description.
Urvashi
le 6 Juin 2014
Geoff Hayes
le 6 Juin 2014
What do you mean by "download 'find' again"? Are you using a different version of find from the built-in one?
Réponse acceptée
Plus de réponses (2)
Image Analyst
le 6 Juin 2014
I don't see any problem:
A = [260,343; 344,433; 434,530; 531,631; 632,723]
targetValue = 443
logicalRowsInRange = (targetValue > A(:,1) & A(:,2) > targetValue)
rowInRange = find(logicalRowsInRange)
A =
260 343
344 433
434 530
531 631
632 723
targetValue =
443
logicalRowsInRange =
0
0
1
0
0
rowInRange =
3
Catégories
En savoir plus sur Downloads dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!