
Come scrivere un file di testo su Matlab
In questa lezione ti spiego come aprire, scrivere e leggere un file di testo su Matlab.
Come creare un nuovo file
Per scrivere un nuovo file di testo usa la funzione fopen()
Tra le parentesi tonde indica il nome del file di testo e la modalità di accesso in scrittura "w" (write)
>> MyFile=fopen("test2.txt", "w");
La variabile MyFile è una variabile di appoggio da usare nello script in sostituzione del nome del file.
Ora scrivi due record nel file tramite la funzione fprintf().
>> fprintf(MyFile, "1 record \n");
>> fprintf(MyFile, "2 record \n");
Nota. Il simbolo \n (newline) che vedi alla fine di ogni record indica a Matlab di andare a capo su una nuova riga creando un nuovo record. Se non aggiungi il simbolo \n la successiva istruzione fprint() o fput() continua a scrivere coda sullo stesso record.
Al termine delle operazioni di scrittura chiudi il file usando la funzione fclose()
>> fclose(MyFile);
Come leggere un file
Per leggere il contenuto di un file di testo devi usare la funzione fopen()
Indica tra parentesi tonde il nome del file e l'attributo "r" (read)
>> MyFile=fopen("test2.txt", "r");
La variabile MyFile è una variabile di transito per compiere le operazioni sul file. Puoi chiamarla anche in altro modo.
A questo punto usa la funzione fgetl() per leggere un record del file
>> fgetl(MyFile)
La funzione fgetl() legge il contenuto del primo record
ans = 1 record
Per leggere anche il secondo record usa un'altra volta la funzione fgetl()
>> fgetl(MyFile)
In questo caso la funzione fgetl() legge del secondo record perché il primo record è stato già letto.
ans = 2 record
Quando la funzione fgetl() arriva alla fine del file restituisce -1.
Ad esempio, se digiti per la terza volta la funzione fgetl()
>> fgetl(MyFile)
il comando di lettura restituisce -1 perché il file contiene solo due record e sono già stati letti.
ans = -1
Al termine delle operazioni di lettora ricordati di chiudere il file con la funzione fclose()
>> fclose(MyFile);
Come leggere il file tramite un ciclo
Quando devi leggere un file dall'inizio alla fine ti conviene usare una struttura ciclica.
In questo modo eviti di digitare ogni volta fgetl() per leggere i singoli record.
MyFile=fopen("test4.txt", "r");
eof=0;
while eof==0
rec =fgetl(MyFile)
if (rec==-1) eof=1; endif
end
fclose(MyFile)
Come aggiungere record a un file esistente
Per aggiungere altri record in coda a un file esistente, senza cancellare il contenuto già presente, devi aprilo in modalità append.
Ad esempio, apri il file "test2.txt" in modalità di accesso 'a' (append) tramite la funzione fopen()
>> MyFile=fopen("test2.txt", "a");
Nel file ci sono già due record.
1 record
2 record
Ora aggiungi un nuovo record usando la funzione fprintf() o fputs()
>> fprintf(MyFile, "3 record \n");
Nota. Per aggiungere altri record usa nuovamente la funzione fprint() come nel precedente esempio.
Quando hai finito di aggiungere i record, chiudi il file tramite la funzione fclose()
>> fclose(MyFile);
Ora nel file ci sono tre record.
1 record
2 record
3 record
Matlab ha aggiunto un nuovo record senza cancellare i record già esistenti nel file.
Le modalità di accesso ai file
Esistono diverse modalità di accesso al file
r = apre il file in lettura
w = apre un nuovo file in scrittura
a = aggiunge record in coda a un file esistente senza cancellare il contenuto già esistente
r+ = apre un file in lettura e scrittura
w+ = apre un nuovo file in lettura e scrittura
a+ = apre un file in lettura e in scrittura alla fine del file
In questa lezione hai imparato tutte le informazioni necessarie per cominciare a scrivere o leggere file di testo tramite Matlab.