break from a nested for loop
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
kurdistan mohsin
il 10 Mag 2022
Commentato: kurdistan mohsin
il 16 Mag 2022
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 Commenti
Risposta accettata
Image Analyst
il 10 Mag 2022
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 Commenti
Image Analyst
il 11 Mag 2022
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
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!