[Matlab] Ciclo for contemporaneo
Buongiorno, dovrei creare un ciclo for in cui possa inserire due variabili contemporanee.
Mi spiego meglio, dovrei fare una cosa del tipo:
for i=1:5 and k=2:6
H=i+k
Dovrei così ottenere H= 3 H= 5 ecc..
Ilproblema è chenon capisco come creare un ciclo for che esegue le due variabili contemporanee.
Qualcuno sa aiutarmi?
Mi spiego meglio, dovrei fare una cosa del tipo:
for i=1:5 and k=2:6
H=i+k
Dovrei così ottenere H= 3 H= 5 ecc..
Ilproblema è chenon capisco come creare un ciclo for che esegue le due variabili contemporanee.
Qualcuno sa aiutarmi?
Risposte
E ad ogni iterazione quale variabile incrementi??
La via maestra per fare questa cosa è annidare i cicli:
La via maestra per fare questa cosa è annidare i cicli:
for i = 1 : 5 for 2 : 6 H = i + k end end
[xdom="JoJo_90"]Sposto in Informatica.[/xdom]
"Raptorista":
E ad ogni iterazione quale variabile incrementi??
La via maestra per fare questa cosa è annidare i cicli:
for i = 1 : 5 for 2 : 6 H = i + k end end
Io voglio incrementare di 1 ad ogni passo entrambe le variabili. Annidando i cicli non ottengo ciò che voglio.
Vorrei ottenere al primo passo i=1 e k=2 e quindi H=1+2=3
al secondo passo i=2 e k=3 e quindi H=2+3=5 e così via..
Aaah! My bad, ora ho capito cosa vuoi fare.
In questo caso, basta fare così
In questo caso, basta fare così
k = 2 for i = 1 : 5 H = i + k k += 1 end
"Raptorista":
Aaah! My bad, ora ho capito cosa vuoi fare.
In questo caso, basta fare così
k = 2 for i = 1 : 5 H = i + k k += 1 end
Ottimo! Grazie mille!Gentilissimo!

In genere è una brutta idea fare codici di questo tipo, ancor più in Matlab.
Detto questo il tuo codice è equivalente al seguente:
Detto questo il tuo codice è equivalente al seguente:
H = 11
Come ti ha fatto notare vict85 il tuo codice (scritto così com l'hai postato) ha poco senso in quanto restituisce il solo valore 11. Se, come immagino, hai bisogno di tutti i valori assunti da H e sai che gli estremi in cui variano i e k sono fissati, allora puoi direttamente costruirti un vettore con tutti i valori che assume H così:
H = [3:2:11]