Shrink a 1-D array (vector) by removing all the columns with a value of zero
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
SimpleArray = [1,0,2,0,3,0,4,0,5,0]
Desired result
NewSimpleArray = [1,2,3,4,5]
0 commentaires
Réponse acceptée
Jacob Halbrooks
le 20 Mar 2012
Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)
4 commentaires
Plus de réponses (4)
seif seif
le 21 Jan 2018
Modifié(e) : seif seif
le 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 commentaires
Image Analyst
le 31 Août 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
le 12 Déc 2018
How about matrix?
What if the output is still a matrix after removing zero elements?
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!