Now i combined answers. Help me about this iteration. I want it iterate until whole matrix zero.
A=[-1,1,1;0,-1,0;0,0,-1;1,0,0]
if ~sum(A(:)) % this iteration will be continued until whole matrix zero 0
f = find(any(A==-1,2)); % i have to find row which including only one -1, if found 2 or more, i have to pick just one of them in that iteration. How can i find it?
% in one column only one -1 and 1. then after find row with only one -1, i have to add it to the row with 1 which is staying with one column. It is the way my matrix will be zero.
2nd row which including only one -1 is added to the first row. after that:
A=[-1,0,1;0,0,0;0,0,-1;1,0,0]
If all whole matrix not zero. then will be iterated again. Please give me some clue. Help me!
A matrix could sum to zero without every element being zero. If you want every element being zero, you need to take abs() before summing, or use nnz().
Using the terminology of Walter Roberson but simpler
while ~(ending condition is met)
% Include the iteration code here
end
As mentioned in the previous comments, be careful with the ending condition
1) If you write
while sum(A(:)
the code will iterate until all elements of A add up to zero. This can occur, however, even if not all elements of A are zero.
2) If you write either
while sum(abs(A(:)))
or
while any(A(:))
then the code will iterate until all elements of A are zero (not just their sum).
NOTICE that in your comment to Walter Roberson answer, the condition if sum(A(:)) lets the iteration continue unless the sum of the elements of A isdifferent from zero, which I think is not exactly what you want, or is it?
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.