Removing elements of array by condition and without resizing?
이전 댓글 표시
I'm trying to produce an array to later write into a .txt file. Currently, the array I am working with is a 5323x18 double. Due to the nature of its conception, roughly all the first 3-5 columns contain a non-zero numerical value, while the other columns (6-18) occasionally contains a non-zero numerical value. The rest of the elements of the array are zero. In order to ensure that the .txt file doesn't have any of these zeros, is there any way I can delete those elements from the array, while maintaining the array size?
For example, turning something like the following array:
[ 1 5 0 0 0 0
1 5 6 7 0 0
4 0 0 0 0 0
5 5 5 5 5 5]
to
[ 1 5
1 5 6 7
4
5 5 5 5 5 5]
답변 (1개)
madhan ravi
2019년 2월 19일
Result=arrayfun(@(x)nonzeros(a(x,:)).',1:size(a,1),'un',0); % where a is your matrix
celldisp(Result)
댓글 수: 5
Jonathan Cardoza
2019년 2월 19일
madhan ravi
2019년 2월 19일
matrix cannot have holes so cell array is preferred
Jonathan Cardoza
2019년 2월 19일
madhan ravi
2019년 2월 19일
yes by holes I mean empty
Jonathan Cardoza
2019년 2월 19일
카테고리
도움말 센터 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!