eliminate zero elements and separate into different matrix

10 vues (au cours des 30 derniers jours)
weifeng wang
weifeng wang le 17 Juil 2016
Commenté : weifeng wang le 17 Juil 2016
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].

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 17 Juil 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 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 17 Juil 2016
You can do it with any array supported by Matlab, but your figure doesn't show a matrix!
weifeng wang
weifeng wang le 17 Juil 2016
Thank you very much!!! It perfectly works, awesome!!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices 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!

Translated by