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.




Non hai risolto il tuo problema? Scrivi una domanda




FacebookTwitterLinkedinLinkedin