[Matlab] Legenda plot iterativa

peppe.carbone.90
Salve.

Ho iniziato da qualche tempo ad usare Matlab (e a studiare Calcolo numerico). Ho la necessità di produrre il grafico di una grandezza $D(\beta;\xi)$ con $\beta$ variabile indipendente e $\xi$ parametro. In pratica, devo produrre sullo stesso grafico più curve, una per ogni valore del parametro.

Ho scritto questo codice per il grafico:

clear all
clc
close all

xi = [0.01 0.1 0.2 0.3 0.5 0.7 1]; % vettore del parametro (smorzamento)
beta = linspace(0,3,200); % vettore delle ascisse (rapporto di frequenza)
D = zeros(length(xi),length(beta)); % inizializzazione

 for i=1:length(xi)
    D(i,:) =  1./sqrt( (1-beta.^2).^2 + (2*xi(i)*beta).^2 );
 end
 
plot(beta,D)
grid on
xlim([0 3])
ylim([0 5])


Volevo chiedere se c'è un modo (e penso di sì) di creare la legenda del grafico associata ad ogni curva di parametro $xi_i$, in modo da poter risalire a quale valore del parametro si riferisce ciascuna curva.
Ho provato a cercare su forum e ho trovato parecchi esempi di codice, ma al momento vanno al di là delle mie scarse conoscenza di Matlab, per cui non riesco a trasporre quei codici al mio caso.

Grazie.

Risposte
feddy
devi usare legend, prova a seguire quello fatto qui:

https://it.mathworks.com/help/matlab/cr ... tExample-6

peppe.carbone.90
Grazie. Mentre attendevo la risposta, ho risolto (forse in modo rudimentale) scrivendo le etichette nello stesso ordine in cui compaiono gli elementi del parametro:

legend ('\xi_1=0.01','\xi_2=0.1','\xi_3=0.2','\xi_4=0.3','\xi_5=0.5', '\xi_6=0.7', '\xi_7=1')

Sicuramente ci sono modi più raffinati, ma per il momento mi va bene così.
Grazie ancora. Ovviamente accetto suggerimenti.

feddy
Beh se non hai troppi elementi puoi tenere pure così, in effetti :)

Altrimenti sul forum di matlab o su stack dovresti trovare tutto

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