[Matlab] Ciclo for contemporaneo

marcos1991
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?

Risposte
Raptorista1
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

peppe.carbone.90
[xdom="JoJo_90"]Sposto in Informatica.[/xdom]

marcos1991
"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..

Raptorista1
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

marcos1991
"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! :-D

vict85
In genere è una brutta idea fare codici di questo tipo, ancor più in Matlab.

Detto questo il tuo codice è equivalente al seguente:
H = 11

Lory314
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]

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.