break from a nested for loop

조회 수: 1(최근 30일)
kurdistan mohsin
kurdistan mohsin 2022년 5월 10일
댓글: kurdistan mohsin 2022년 5월 16일
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]
D = 10×5
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
Dn = 10×5
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

채택된 답변

Image Analyst
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
kurdistan mohsin
kurdistan mohsin 2022년 5월 16일
it works too, thanks again

댓글을 달려면 로그인하십시오.

추가 답변(1개)

Mitch Lautigar
Mitch Lautigar 2022년 5월 10일
Using Matlabs "continue" command should do what you need.
  댓글 수: 1
kurdistan mohsin
kurdistan mohsin 2022년 5월 11일
thank you

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by