[Matlab] Generare un vettore da un ciclo

matty90c
Salve,
sono alle prese con uno script di Matlab.

Devo ottenere un vettore con dentro tutti valori di un raggio R per ogni valore di p (pressione) usando la seguente formula $ R(i)= ((p(i))/(p(i+1))) ^ (1/3\gamma) $ dove p è un vettore composto da N elementi.

Il programma deve prendere il valori (i-esimo) e (i-esimo +1) di "p" fino al valore (N-esimo -1) e (N-esimo) e deve restituirmi un vettore con i tutti i valori di R da "i" a "N".

Grazie!

Risposte
apatriarca
Non sono sicuro di aver capito.. comunque qualcosa del genere credi possa funzionare?
R = ( p(1:end-1) ./ p(2:end) ).^(gamma/s);

matty90c
"apatriarca":
Non sono sicuro di aver capito.. comunque qualcosa del genere credi possa funzionare?
R = ( p(1:end-1) ./ p(2:end) ).^(gamma/s);


si esatto, grazie! e se ora dovessi moltiplicare tutto il membro di destra per R(i-1) ?

Mi spiego meglio, devo avere un vettore con tutti i valori di R (i:N) ottenuto dalla formula $ R(i) = (((p(i-1))/(p(i)))^(2/21)) * (R(i-1))$

apatriarca
Suppongo si potrebbe scrivere nel modo seguente:
R = ( p(1:end-1) ./ p(2:end) ).^(2/21);
R = cumprod(R);

matty90c
Come scrivereste questo in Matlab?
$ R = [((P(i))/(P(i+1)))^(2/21)]*R(i) $

dove P e R sono vettori. Cioè R si deve aggiornare ogni volta.

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