Take the 2-minute tour ×  I have a matrix  x = [0 0 0 1 1 0 5 0
7 0]  I need to remove all of the zeros such as  x=[1 1 5 7]
The matrices I am using are large (1x15000) I need to do this
multiple times (5000+)  Efficiency is key!  share|improve this
question  6 Answers 6  up vote 13 down vote accepted  One way:
x(x == 0) = [];  A note on timing:  As mentioned by woodchips,
this method seems slow compared to the one used by KitsuneYMG.
This has also been noted by Loren in one of her MathWorks blog
posts. Since you mentioned having to do this thousands of times,
you may notice a difference, in which case I would try x =
x(x~=0); first.  WARNING: Beware if you are using non-integer
numbers. If, for example, you have a very small number that you
would like to consider close enough to zero so that it will be
removed, the above code won't remove it. Only exact zeroes are
removed. The following will help you also remove numbers "close
enough" to zero:  tolerance = 0.0001;  % Choose a threshold for
"close enough to