removing zeros from matrix
古いコメントを表示
Hi,
I have a matrix like this:
0 0 2 3 4 0;
1 0 2 0 0 1;
3 2 1 0 0 0;
0 1 0 3 0 1;
I want to remove the zeros so I could have something like this:
2 3 4;
1 2 1;
3 2 1;
1 3 1;
The number of zeros in each row of the original matrix is the same. Any idea how can I do this? Commands like A=A(A ~= 0) didn't work.
Thanks!
採用された回答
その他の回答 (2 件)
Azzi Abdelmalek
2016 年 3 月 17 日
v=[0 0 2 3 4 0; 1 0 2 0 0 1; 3 2 1 0 0 0; 0 1 0 3 0 1]
out=reshape(v(v~=0),size(v,1),[])
Image Analyst
2016 年 3 月 17 日
This works:
A=[0 0 2 3 4 0; 1 0 2 0 0 1; 3 2 1 0 0 0; 0 1 0 3 0 1]
for row = 1 : size(A, 1)
thisRow = A(row,:)
% Remove zeros
thisRow(thisRow == 0) = [];
% Append to new matrix.
if row == 1
Anozeros = thisRow
else
Anozeros = [Anozeros; thisRow];
end
end
A = Anozeros
I'm sure there are other ways too. (Hopefully it's not homework, though it looks like it.)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!