eliminate zero elements and separate into different matrix

13 visualizaciones (últimos 30 días)
if i have a matrix like [0 0 0 0 1 2 3 0 0 3 2 0 0 0 3 4 4 5 0],how can I get three matrix [1 2 3];[3 2] and [3 4 4 5].

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 17 de Jul. de 2016
A=[0 0 0 0 1 2 3 0 0 3 2 0 0 0 3 4 4 5 0]
idx=A~=0
ii1=strfind([0 idx],[0 1])
ii2=strfind([idx 0],[1 0])
out=arrayfun(@(x,y) A(x:y),ii1,ii2,'un',0)
celldisp(out)
  3 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 17 de Jul. de 2016
You can do it with any array supported by Matlab, but your figure doesn't show a matrix!
weifeng wang
weifeng wang el 17 de Jul. de 2016
Thank you very much!!! It perfectly works, awesome!!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices 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