
Come creare un file con i campi delimitati su Matlab
In questa lezione di Matlab ti spiego come si crea un file di testo con dati numerici separati da un delimitatore.
A cosa serve? I file con dati numerici delimitati sono molto utili per archiviare e esportare i dati in formato ASCII da un software a un altro.
Ti faccio un esempio pratico.
Definisci una matrice
>> M = [1 2 3; 4 5 6; 7 8 9 ];
Per salvare la matrice in un file con i dati separati da un delimitatore usa la funzione dlmwrite().
dlmwrite('nomefile.txt',M,';')
La funzione dlmwrite() ha tre parametri obbligatori
- Il nome del file dove salvare i dati
- La variabile che contiene i dati
- Il carattere da usare come delimitatore
Questa funzione salva la matrice in un file di testo sul disco fisso del PC.
In questo caso, in ogni record (riga) del file i dati numerici sono separati con un punto e virgola ";".
Ora azzera la memoria di Matlab con la funzione clear.
>> clear
L'oggetto M non è più in memoria.
Se provi a richiamarlo Matlab restituisce un messaggio di errore.
>> M
Unrecognized function or variable 'M'.
Per leggere l'oggetto M dal file e caricarlo in memoria, usa la funzione dlmread()
>> X=dlmread('nomefile.txt', ';')
La funzione dmlread() ha due parametri obbligatori
- Il nome del file di testo dove si trovano i dati
- Il carattere usato come delimitatore
Matlab legge i dati presenti nel file di testo e li assegna alla variabile array X.
Attenzione. Per caricare i dati devi indicare lo stesso carattere delimitatore che hai usato per salvare i dati nel file. In questo caso il carattere delimitatore è il punto e virgola.
Ora, digita X sulla riga di comando e premi invio.
>> X
X =
1 2 3
4 5 6
7 8 9
La variabile X è nell'area di lavoro di Matlab e contiene gli stessi dati della matrice M.
In questo modo puoi salvare qualsiasi matrice numerica in un file e caricare i dati in un momento successivo.
Nota. In questo esempio hai creato un file usando come delimitatore il punto e virgola ";". Puoi anche creare file di testo separando i dati con un altro carattere. Non solo il punto e virgola. Ad esempio, puoi usare come delimitatore la virgola ",". Per farlo ti basta modificare il terzo parametro della funzione dlmwrite() e il secondo parametro della funzione dlmread().