break from a nested for loop
13 次查看(过去 30 天)
显示 更早的评论
hi, i have the below matrix , i want each row to have only on value equal to '1' , so when searching if it find a one it will take it and make the rest values of the row equal to zero . i write the bellow code , i need to break the second loop when the if condtion is true , any one can help?
D=[ 1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
0 1 0 0 0
1 1 0 1 1
0 0 1 0 0
0 0 0 0 0
0 0 1 0 0
1 0 0 1 1
0 0 0 0 0]
N=10;
M=5;
for n=1:N
for m=1:M
if D(n,m)==1
Dn(n,m)=1;
Dn(n,m+1:end)=0;
else Dn(n,m)=0;
end
end
end
Dn
0 个评论
采纳的回答
Image Analyst
2022-5-10
Try using a flag
abort = false;
for n = 1 : N
for m = 1 : M
if conditionForBreaking
abort = true; % Set flag
break; % Exit inner loop.
end
end
if abort
break % exit outer loop.
end
end
3 个评论
Image Analyst
2022-5-11
D=[ 1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
0 1 0 0 0
1 1 0 1 1
0 0 1 0 0
0 0 0 0 0
0 0 1 0 0
1 0 0 1 1
0 0 0 0 0];
[rows, columns] = size(D);
for row = 1 : rows
indexOfFirst1 = find(D(row,:) == 1, 1, 'first');
if ~isempty(indexOfFirst1)
% If there is a one in the row, make all elements
% in the row zero after that one.
D(row, indexOfFirst1+1:end) = 0;
end
end
D
更多回答(1 个)
另请参阅
类别
在 Help Center 和 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!