cut of zeros from a matrix based on the longest non-zero row
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Nikolas Spiliopoulos
el 22 de Nov. de 2021
Comentada: Dave B
el 22 de Nov. de 2021
Hi all,
I want to cut all zeros from the right, based on "the longest non zero row". an example:
A=[ 1 2 0 0 0 0;3 4 5 0 0 0;5 6 0 0 0 0];
output: A=[ 1 2 0 ;3 4 5 ;5 6 0 ];
thanks in advance!
1 comentario
Yongjian Feng
el 22 de Nov. de 2021
Try it yourself first please. We can then look at the code together.
Respuesta aceptada
Dave B
el 22 de Nov. de 2021
Editada: Dave B
el 22 de Nov. de 2021
Another way to phrase this question is to say you want to remove columns from the right side of the matrix if the whole column is zeros:
A=[ 1 2 0 0 0 0;3 4 5 0 0 0;5 6 0 0 0 0];
lastnonzero=find(any(A~=0,1),1,'last') % the last column with a non-zero row
A(:,lastnonzero+1:end)=[]
3 comentarios
Net Fre
el 22 de Nov. de 2021
OK, much better than mine :)
Didn't know about any. Notice that your code will ingore non-zero negatives.
Más respuestas (1)
Ver también
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!