View Full Version : [MATLAB] plot di dati da un file .mat salvato
ho la necessità di plottare sullo stesso grafico dei dati memorizzati all'interno di vari vettori salvati all'interno di diversi file .mat (con il comando save) ma con lo stesso nome.
ad esempio ho i file a.mat b.mat e c.mat,
in a.mat ho i vettori d=(1,0,1) e=(3,4,5)
in b.mat ho i vettori d=(5,7,9) e=(0,9,1)
in c.mat ho i vettori d=(4,7,8) e=(3,5,9)
come faccio a plottare sullo stesso grafico le coppie d,e per ogni file .mat senza dover caricare ogni file .mat (load) e salvare i vettori con altri nomi?
qualcosa del tipo plot(d(a.mat),e(a.mat),d(b.mat),e(b.mat),d(c.mat),e(c.mat))
grazie!!!
Oceans11
26-10-2008, 20:05
Puoi spiegarti meglio? Non ho capito se devi plottare tutti i vettori di tutti i file su un'unica figura, oppure se ad ogni file corrisponde una figura sulla quale plotti solo d ed e.
Poi che vuol dire che non devi caricare ogni volta i file .mat? Se non lo fai i dati dei vettori come li ottieni?
ho bisogno ad esempio di plottare su una sola figura i 3 vettori che si chiamano tutti e 3 d ma hanno ognuno valori diversi appartenendo a file .mat diversi.
Poi che vuol dire che non devi caricare ogni volta i file .mat? Se non lo fai i dati dei vettori come li ottieni?
questo è il punto volevo sapere se esiste un modo per andare a recuperare direttamente dal plot i dati in un certo file .mat senza doverlo caricare per forza, adesso faccio così
prendendo i vettori di prima
load a.mat
d1=d;
e1=e;
load b.mat
d2=d;
e2=e;
load c.mat
d3=d;
e3=e;
plot(d1,e1,d2,e2,d3,e3)
mi chiedevo se c'è un modo di semplificare l'operazione
Oceans11
26-10-2008, 21:18
mi dispiace ma non ti so aiutare. Oltretutto non ho neanche matlab installato per ora, quindi ho le mani legate. Speriamo in qualcun'altro!
nn sai se esiste qualcosa di simile in altri linguaggi, chessò in C, per partire da li a cercare?
Oceans11
26-10-2008, 22:36
nn sai se esiste qualcosa di simile in altri linguaggi, chessò in C, per partire da li a cercare?
non che io sappia. Il discorso è che il "plot" non contiene come informazione i valori di ascisse e ordinate da interlacciare, ma solo il "disegno" della spezzata. Insomma, c'è una perdita di informazioni nel plot.
Almeno, questa è la mia opinione, sono pronto alle smentite :)
vincenzo83
27-10-2008, 08:25
load a.mat
d1=d;
e1=e;
load b.mat
d2=d;
e2=e;
load c.mat
d3=d;
e3=e;
plot(d1,e1,d2,e2,d3,e3)
Ciao, non ho mai utilizzando il comando save\load e file mat ... ma così ad intuito prova questo:
hold on
load a.mat
plot(d,e)
load b.mat
plot(d,e)
load c.mat
plot(d,e)
hold off
Risparmi la bellezza di due linee di codice :D mmm
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.