Salvare valori da ciclo for - Matlab

di il
1 risposte

Salvare valori da ciclo for - Matlab

Ciao a tutti, sono Mery!
Sono nuova del Forum e abbastanza anche di Matlab.
Per un range di valori di corrente risolvo una equazione di terzo grado (in cui c'è un valore di corrente) in funzione di un altro parametro n. Poi devo fare un plot di una funzione 'An' in base ai valori di n trovati (in realtà solo di una delle tre soluzioni per ogni valore di corrente) rispetto ai valori del range di corrente. Ho provato a farlo con un ciclo for, ma mi plotta solo l'ultimo valore di 'An', perchè immagino lo sovrascriva sempre.
Ecco il mio codice:

for I = 1e-9:1e-2:1
syms f(x)
f(x) = A*x + B*x^2 + C*x^3 - I/(q*d*L*W);
n = vpasolve(f,x,[1e12 1e22]);
An= I/(q*d*L*W)-B*n.^2-C*n.^3;
plot(An)
end

Come faccio a plottare tutti i punti che trova dentro al ciclo for e non solo l'ultimo?
Grazie

1 Risposte

  • Re: Salvare valori da ciclo for - Matlab

    La funzione "plot" sovrascrive il grafico che viene plottato a quello eventualmente già presente.
    Per plottare tutti i valori puoi:
    [*] aggiungere l'istruzione "hold on" prima del ciclo "for"; questa fa sì che gli elementi plottati vengano "aggiunti" al grafico invece che sostituire quelli precedenti
    [*] creare un contatore inizializzandolo a 0 prima del ciclo "for", incrementarlo ad ogni iterazione ed usarlo come indice nell'assegnare i valori a "An" in modo che diventi un vettore ed immagazzini tutti i dati, spostare la chiamata alla funzione "plot" dopo il ciclo "for", quando tutti i valori di "An" saranno stati calcoalti.
Devi accedere o registrarti per scrivere nel forum
1 risposte