how to delete the rest of the zeros from a matrix

suppose this the output c=[0 0 0 0; 0 0 0 0; 1 1 1 1] now how could i delete the other zeros for a looop and only print the last row??

1 commentaire

Adam
Adam le 6 Mar 2015
Is that as complex as the problem gets or do you have case where some 1s appear in a row with 0s? If so are you expecting the output to simply be a 1d array of basically however many 1s exist in c, irrespective of the structure of where they appear?

Connectez-vous pour commenter.

 Réponse acceptée

Sad Grad Student
Sad Grad Student le 6 Mar 2015
Modifié(e) : Sad Grad Student le 6 Mar 2015
To remove 0, you can simply do: c(~c) = []; you don't need a loop! Beauty of matlab :)
~c is essentially looking for empty values in c. In Matlab, 0 means empty value and you can simply remove it by replacing it with []
>> c=[0 0 0 0; 0 0 0 0; 1 1 1 1]
c =
0 0 0 0
0 0 0 0
1 1 1 1
>> c(~c) = []
c =
1 1 1 1
>>

2 commentaires

when i m doing this all columns are not showing i have 41 columns and 10 rows but i dont know why this happening here only shows 13 or 14 columns??? but why??
I need to know what exactly it is that you're doing. Post your code here in the comments so I can answer why you're getting unexpected number of columns.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by