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

 Accepted Answer

Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)

More Answers (4)

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)
Using nonzeros is also very simple (note that the output is a column vector):
NewSimpleArray = nonzeros(SimpleArray)
NewSimpleArray =
1
2
3
4
5

2 Comments

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, [])
How about matrix?
What if the output is still a matrix after removing zero elements?

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!