How to find the column index of the first nonzero element for every row of a given matrix

1 visualización (últimos 30 días)
Dear all,
I have the following matrix
A=[1 1 1 1; 0 1 1 1; 0 0 0 1; 0 0 1 1; 0 1 1 1]
A = 5×4
1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1
and I would like to get an output vector v listing the column indices of the first nonzero element for every row of A:
v=[1;2;4;3;2]
v = 5×1
1 2 4 3 2
How can I do this? Thanks in advance, I appreciate your time and help.
  2 comentarios
Distelfink
Distelfink el 6 de Mzo. de 2022
Not at all, but this was a different problem I thought. Matt's solution in that thread, to use the find() function, did not work for me in the case here because it yields the column indices of all non-negative values in each row.

Iniciar sesión para comentar.

Respuesta aceptada

Arif Hoq
Arif Hoq el 6 de Mzo. de 2022
you can find your answer here
Just follow this:
A=[1 1 1 1; 0 1 1 1; 0 0 0 1; 0 0 1 1; 0 1 1 1];
[~,output]=max(A,[],2)
output = 5×1
1 2 4 3 2

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing 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!

Translated by