How to find the lowest and highest rows in a column vector which contain a value.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Nathan B
el 31 de En. de 2018
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 comentarios
Respuesta aceptada
Akira Agata
el 31 de En. de 2018
idx = ~isnan(A);
lowestRow = min(find(idx));
highestRow = max(find(idx));
5 comentarios
Jos (10584)
el 31 de En. de 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
Más respuestas (1)
Jos (10584)
el 31 de En. de 2018
idx = ~isnan(A);
lowestRow = find(idx, 1, 'first')
highestRow = find(idx, 1, 'last')
1 comentario
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!