In Matlab, sto eseguendo calcoli durante un ciclo for, ma sto cercando di trovare un modo per saltare le iterazioni durante il ciclo for se sono soddisfatti determinati criteri. Ho scritto un breve esempio per illustrare la mia domanda.In MATLAB, come posso saltare un numero predeterminato di iterazioni di loop se sono soddisfatti determinati criteri?
Nel codice seguente, il ciclo for passerà attraverso le iterazioni 1 e 2 e verrà emesso come previsto in r. r (1) sarà 1, e r (2) sarà 2. Una volta che il ciclo for attraversa l'iterazione 3, il valore di 20 sarà posizionato in r (3). Dopo che questo ha avuto luogo, allora voglio che il ciclo for salti le prossime 5 iterazioni e vada dritto all'iterazione 8 del ciclo for.
for i=1:1:10
if i==3
r(i)=20;
i = i+5;
else
r(i) = i;
end
end
Il risultato effettivo per r è la seguente:
r =
1 2 20 4 5 6 7 8 9 10
Tuttavia, vorrei per il risultato di apparire simile alla seguente. (NOTA che non sto cercando di riempire il r desiderata (4):. R (7) con 0, ma piuttosto cercando di saltare per iterazioni del ciclo da 4 a 7 del tutto)
r =
1 2 20 0 0 0 0 8 9 10
Se qualcuno ha consigli , questo sarà molto apprezzato Grazie!
Grazie per le informazioni incluso l'addizionale sulla pre-assegnazione! – Aaron
Nessun problema, di solito lavoro con vettori di grandi dimensioni, ma non è una cattiva abitudine da sviluppare! :) –
BTW, il motivo per cui il tuo codice non funziona è che MATLAB memorizza effettivamente il proprio "riferimento" all'i utilizzato nel ciclo for, quindi mentre puoi ottenere i, non puoi modificare il valore. Ho dimenticato esattamente come funziona, ma ricordo che quando ero nuovo alla programmazione, l'ho cercato, un po 'interessante haha – Shaun314