Se con "
creare un grafico ad ogni iterazione di k2" intendi un grafico in "una nuova finestra", devi inserire l'istruzione
figure
prima delle istruzioni per la creazione del grafico (plot(...)).
Per come è strutturato adesso il tuo script, viene creata una sola "finestra" e tutti i grafici generati con le istruzioni "plot" vengono aggiunti nello stesso sistema di assi cartesiani dal momento che hai specificato "hold on".
In alternativa, se i grafici (finestre) che vuoi creare non sono troppi (es. 3 o 4) puoi usare la "
subplot" che crea più assi cartesiani all'interno di una sola "finestra".
Nell'esempio che segue, viene generata una matrice di 6 righe (e 63 colonne), ogni riga contiene i valori delle funzioni sin(x), cos(x), sin(2*x), cos(2*x), sin(3*x) e cos(3*x) calcolati nell'intervallo (0:2*pi).
Nel primo caso le curve vengono plottate a gruppi di 2 in tre "finestre" diverse.
Nel secondo caso le curve vengono plottate, sempre a gruppi di 2 in tre assi cartesiani all'interno di un'unica finestra.
% Definizione dei valori delle ascisse
x=0:.1:2*pi;
% Definizione della matrice delle ordinate
m=[sin(x);
cos(x);
sin(2*x);
cos(2*x);
sin(3*x);
cos(3*x)];
% Calcolo del numero di righe e colonne della matrice
[righe,colonne]=size(m);
% Loop per il plottggio di di due curve per ogni "finestra"
for i=1:2:righe
% Apertura di una nuova finestra
figure
% Plot del grafici
plot(x,m(i,:),x,m(i+1,:))
grid on
end
% Uso della funzione "subplot"
% Apertura di una nuova finestra
figure
% Inizializzazione del contatore dei sistemi di assi cartesiani
cnt=1;
% Loop per il plottaggio
for i=1:2:righe
% Creazine dello i-esimo sistema di assi cartesiani nella finestra
subplot(3,1,cnt)
% Plot delle curce
plot(x,m(i,:),x,m(i+1,:))
grid on
% INcremento del contatore dei sistemi di assi cartesiani nella finestra
cnt=cnt+1
end
Per rispondere alla tua precedente domanda ("
Devo solo unire creare un grafico con Asse X tempi e asse y n nodi quindi penso sia corretto o no ?"): non mi è chiaro cosa tu voglia rappresentare.
Ogni matrice X (X, X2 e X3), è formata da 4 righe e due colonne: cosa rappresentano i due valori di ogni riga? I tempi di fine / inizio di "qualcosa"?
Quando scrivi l'istruzione
plot (x(1,:),y(1,:),x2(1,:),y2(1,:),x3(1,:),y3(1,:));
ed altre simili (sostituendo "1" con "i") hai i due valori di X della i-esima riga ed i corrispondenti di y,
Dal momento che, in base ai dati che hai pubblicato, i valori di y di ogni riga sono uguali, otterrai sempre un segmento parallelo all'asse x i cui limiti sono definiti dai valori corrispondenti di x.
Ho notato che, tra tutti i valori delle matrici X, la coppia nella prima riga della matrice X2 è l'unica nella quale il valore nella prima colonna è inferiore a quello nella seconda colonna.
E' giusto che sia così?
Considerando che, a parte questo unico caso, in tutti gli altri il valore nella prima colonna è inferiore a quello nella seconda, questo fatto mi sembra rilevante nel contesto della analisi (ma forse mi sbaglio).
Se è importante, questa informazione viene persa, nel grafico.
Cerco di spiegarmi meglio, se
x=[10 20]
y=[1 1]
e
x1=[20 10]
y1=[1 1]
i grafici che ottieni con
figure
plot(x,y)
figure
plot(x1,y1)
sono identici e no si "vede" il fatto che, nel primo caso le acisse sono definite in ordine crescente e, nel secondo caso, in ordine decrescente (addirittura si sovrappongono nel caso in cui li plotti in unico grafico).
Se l'ordine è importante, forse è il caso che consideri un modo diverso di generare i grafici.
Hope this helps.