Shrink a 1-D array (vector) by removing all the columns with a value of zero
5 ビュー (過去 30 日間)
古いコメントを表示
SimpleArray = [1,0,2,0,3,0,4,0,5,0]
Desired result
NewSimpleArray = [1,2,3,4,5]
0 件のコメント
採用された回答
Jacob Halbrooks
2012 年 3 月 20 日
Here is a good solution:
NewSimpleArray = SimpleArray(SimpleArray ~= 0)
4 件のコメント
その他の回答 (4 件)
seif seif
2018 年 1 月 21 日
編集済み: seif seif
2018 年 1 月 21 日
Using nonzeros is also very simple (note that the output is a column vector):
NewSimpleArray = nonzeros(SimpleArray)
NewSimpleArray =
1
2
3
4
5
2 件のコメント
Image Analyst
2018 年 8 月 31 日
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
2018 年 12 月 12 日
How about matrix?
What if the output is still a matrix after removing zero elements?
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!