
Il loop for su Octave
In questa lezione ti spiego come realizzare un loop con l'istruzione for su Octave
Cos'è un loop for? E' un'istruzione che ti permette di eseguire ciclicamente un blocco di istruzioni per un numero determinato di volte. Ogni esecuzione del blocco è detta iterazione.
L'istruzione for è composta da una parte iniziale for inizio:passo:fine in cui specifichi l'inizio e la fine del ciclo.
for variabile = inizio:passo:fine
blocco di istruzioni
end
Il passo (o step) è l'incremento dopo ogni iterazione. Se non è indicato è pari a +1 di default.
Un blocco di istruzioni da eseguire. Il blocco può essere composto da una o più istruzioni.
La parola end al termine del blocco di istruzioni.
Nota. Il loop for è un ciclo determinato perché conosci fin dall'inizio il numero di iterazioni che dovrà compiere. Per altri tipi di loop a ciclo indeterminato puoi usare le istruzioni while e do until.
Ti faccio un esempio pratico
Questo script stampa i numeri da 1 a 9
for x=1:9
disp(x);
end
In questo caso il range è composto da due valori 1:9 ossia inizio (1) e fine (9).
Il passo (o step) non è indicato. Quindi è un incremento unitario (+1) di default.
L'output dello script è il seguente
1
2
3
4
5
6
7
8
9
Puoi anche impostare un incremento diverso da uno.
Ad esempio questo script utilizza un passo (o step) pari a +2 dopo ogni iterazione
for x=1:2:9
disp(x);
end
In questo caso il range è composto da tre valori 1:2:9 ossia inizio (1), passo (+2), fine (9)
Lo script stampa i numeri dispari da 1 a 9
1
3
5
7
9
Se imposti un passo negativo puoi ottenere un decremento anziché un incremento.
Ad esempio questo script usa un decremento di -1 dopo ogni iterazione
for x=9:-1:1
disp(x);
end
In questo caso il valore iniziale (9) è più grande del valore finale (1) perché il passo (step) è negativo (-1).
Il risultato in output è un conto alla rovescia
9
8
7
6
5
4
3
2
1
Puoi usare l'istruzione for anche per scorrere gli elementi di oggetto iterabile (es. array).
Ad esempio, puoi usare il ciclo for per leggere il contenuto di un array
v = [1 2 3 4]
for x=v
disp(x);
end
Questo script itera gli elementi dell'array dal primo all'ultimo e li stampa a video.
1
2
3
4
Ora hai una panoramica abbastanza completa sul funzionamento dei cicli for.

