Shrink a 1-D array (vector) by removing all the columns with a value of zero
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
David
el 20 de Mzo. de 2012
Comentada: Saad Rehman
el 7 de Mayo de 2019
SimpleArray = [1,0,2,0,3,0,4,0,5,0]
Desired result
NewSimpleArray = [1,2,3,4,5]
0 comentarios
Respuesta aceptada
Jacob Halbrooks
el 20 de Mzo. de 2012
Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)
4 comentarios
Más respuestas (4)
seif seif
el 21 de En. de 2018
Editada: seif seif
el 21 de En. de 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 comentarios
Image Analyst
el 31 de Ag. de 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
el 12 de Dic. de 2018
How about matrix?
What if the output is still a matrix after removing zero elements?
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!