Shrink a 1-D array (vector) by removing all the columns with a value of zero
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
David
am 20 Mär. 2012
Kommentiert: Saad Rehman
am 7 Mai 2019
SimpleArray = [1,0,2,0,3,0,4,0,5,0]
Desired result
NewSimpleArray = [1,2,3,4,5]
0 Kommentare
Akzeptierte Antwort
Jacob Halbrooks
am 20 Mär. 2012
Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)
4 Kommentare
Weitere Antworten (4)
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
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
am 12 Dez. 2018
How about matrix?
What if the output is still a matrix after removing zero elements?
Siehe auch
Kategorien
Mehr zu Logical 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!