How to delete rows with values 0 from matrix
2 views (last 30 days)
Show older comments
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 Comments
VBBV
on 1 May 2023
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
Answers (1)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!