Azzera filtri
Azzera filtri

Shrink a 1-D array (vector) by removing all the columns with a value of zero

7 visualizzazioni (ultimi 30 giorni)
SimpleArray = [1,0,2,0,3,0,4,0,5,0]
Desired result
NewSimpleArray = [1,2,3,4,5]

Risposta accettata

Jacob Halbrooks
Jacob Halbrooks il 20 Mar 2012
Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)
  4 Commenti

Accedi per commentare.

Più risposte (4)

Dr. Seis
Dr. Seis il 20 Mar 2012
SimpleArray(SimpleArray==0) = [];

David
David il 20 Mar 2012
Thanks for the answers and for showing me the previous discussion string (I didn't think this was the first time this question was asked)

seif seif
seif seif il 21 Gen 2018
Modificato: seif seif il 21 Gen 2018
Using nonzeros is also very simple (note that the output is a column vector):
NewSimpleArray = nonzeros(SimpleArray)
NewSimpleArray =
1
2
3
4
5
  2 Commenti
Image Analyst
Image Analyst il 31 Ago 2018
That changes the shape from a row vector to a column vector. However it can be fixed with the code below:
SimpleArray = [1,0,2,0,3,0,4,0,5,0] % Row Vector
NewSimpleArray = nonzeros(SimpleArray) % Creates column vector.
% Reshape back into a row vector.
NewSimpleArray = reshape(NewSimpleArray, 1, [])
saber kazemi
saber kazemi il 12 Dic 2018
How about matrix?
What if the output is still a matrix after removing zero elements?

Accedi per commentare.


Salam Ismaeel
Salam Ismaeel il 31 Ago 2018
Simply by:
X(X==0)=[]

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by