Filter löschen
Filter löschen

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

7 Ansichten (letzte 30 Tage)
SimpleArray = [1,0,2,0,3,0,4,0,5,0]
Desired result
NewSimpleArray = [1,2,3,4,5]

Akzeptierte Antwort

Jacob Halbrooks
Jacob Halbrooks am 20 Mär. 2012
Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)
  4 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (4)

Dr. Seis
Dr. Seis am 20 Mär. 2012
SimpleArray(SimpleArray==0) = [];

David
David am 20 Mär. 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 am 21 Jan. 2018
Bearbeitet: seif seif am 21 Jan. 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 Kommentare
Image Analyst
Image Analyst am 31 Aug. 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 am 12 Dez. 2018
How about matrix?
What if the output is still a matrix after removing zero elements?

Melden Sie sich an, um zu kommentieren.


Salam Ismaeel
Salam Ismaeel am 31 Aug. 2018
Simply by:
X(X==0)=[]

Kategorien

Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by