How to find the lowest and highest rows in a column vector which contain a value.
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
So, I have a 20x1 vector (A) shown below. How would I find the row number for the lowest and highest row that contain a value? In the vector below the lowest would be row 6, and the highest would be row 17. Thanks.
A =
NaN
NaN
NaN
NaN
NaN
1
1
1
NaN
NaN
NaN
1
1
1
NaN
NaN
1
NaN
NaN
NaN
0 commentaires
Réponse acceptée
Akira Agata
le 31 Jan 2018
idx = ~isnan(A);
lowestRow = min(find(idx));
highestRow = max(find(idx));
5 commentaires
Jos (10584)
le 31 Jan 2018
You also forgot the for-loop counter
for K = lowestRow:highestRow
if ~isnan(A(K))
disp(K)
end
end
However,
tf = ~isnan(A)
disp( A(tf) )
would almost do the same and is much more efficient
Plus de réponses (1)
Jos (10584)
le 31 Jan 2018
idx = ~isnan(A);
lowestRow = find(idx, 1, 'first')
highestRow = find(idx, 1, 'last')
1 commentaire
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!