How to delete rows with values 0 from matrix
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have matrix A which looks like
A = [0 0 0; 0 0 0; 5 1 0; 0 0 0; 1 0 3; 5 9 5; 0 0 0]
I am trying delete all rows in which all values are 0 from matrix A to get:
A = [5 1 0; 1 0 3; 5 9 5]
I used this.
for i = 1:length(A(:,1))
while A(i,1) == 0 && A(i,2) == 0 && A(i,3) == 0
A(i,:) = [];
end
end
At the end it gives me matrix A but also it gives me a error:
'Index in position 1 exceeds array bounds. Index must not exceed 4.' but do not know why...
2 个评论
VBBV
2023-5-1
A = [0 0 0; 0 0 0; 5 1 0; 0 0 0; 1 0 3; 5 9 5; 0 0 0]
i = 1;
while i <= length(A)
if isequal(A(i,1),0) & isequal(A(i,2), 0) & isequal(A(i,3), 0)
A(i,:) = [];
% tricky part lies in next line
i = i-1;
end
i = i+1 ;
end
A
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!