next up previous

Next:Grafici Up: Matlab Tutorial Previous: Lavorare con le matrici

Operazioni sui file


Salvare in un file

Vediamo come salvare dei dati su un archivio di testo.
Si voglia salvare i risultati della funzione exp(x) entro l'intervallo
(1; 2) con passo 0.1. Si costruisca dapprima il vettore seguente:
x = 1 : 0.1 : 2 ;
e quindi si valuta una matrice A nel modo seguente:
A = [ x ;exp(x) ];
Decidiamo che il nome esterno del file su cui si vuole salvare la matrice A sia
file.txt : esso dovra' essere posto entro apici perche' e' una stringa. Apriamo il
file in scrittura con 'wt' assegnandogli il nome interno nomefile. L'istruzione
e' la seguente:
nomefile = fopen ( 'file.txt' , 'wt');
Si deposita nell'archivio nomefile la matrice A scrivendo le due colonne di
numeri decimali:
la prima colonna con 6 cifre di cui 2 decimali
la seconda colonna 8 cifre di cui 4 decimali.
Si osservi che fprintf e' un acronimo di file print formatted.

fprintf ( nomefile , '%6.2g %8.4g\n' , A);
Si noti che per primo si mette il nome interno: nomefile
per secondo si mette il formato per terzo si mette la matrice: A
Quindi si chiude il file con il comando:
fclose (nomefile);
Se si vuole analizzare il file cosi' creato lo si puo' fare con un editor di testo qualsiasi.
Caricare un file Vediamo come leggere dati da un archivio di testo.
Il nome esterno del file sia "file.txt" che e' generato con un programma
esterno. Il nome deve essere posto entro apici perchè è una stringa. Per iniziare si apre
il file assegnandogli un nome interno, ad esempio nomefile, in lettura ( 'r' che
sta per "read" ).
nomefile = fopen ( 'file.txt' , 'r');
Si preleva dall'archivio nomefile la matrice A leggendo le due colonne di
numeri in formato "%g".
A = fscanf ( nomefile , '%g %g' , [2 inf] );
A = A';

Si noti che per primo si mette il nome interno: (nomefile) per secondo si
mette il formato ('%g%g') per terzo si mette il numero di elementi per riga
(2) e, non sapendo quante righe sono, si mette inf il tutto entro parentesi
quadre per indicare la matrice da prelevare. Per ultimo si chiude il file:
fclose (nomefile);
Ricapitoliamo i comandi utilizzati:
aprire ==> fopen (...) chiudere ==> fclose (...)
scrivere ==> fprintf (...) leggere ==> fscanf (...)