Come salvare e importare i dati su Octave

In questa lezione di Octave ti spiego come salvare e caricare dei dati tramite file su Octave.

A cosa serve salvare i dati? Vuol dire salvare i dati che si trovano nella memoria RAM del computer in un file sul disco fisso o altro supporto (es. pendrive). I dati in memoria RAM del computer sono volatili, quando spegni il computer o chiudi Octave li perdi. Viceversa, i dati salvati in un file sono permanenti e puoi anche ricaricarli in memoria quando riaccendi il PC senza doverli riscrivere ogni volta.

Come fare il salvataggio dei dati

Ti faccio un esempio pratico

Crea tre array con i nomi M1, M2, M3

>> M1=[1 2 3; 4 5 6];
>> M2=[7 8 ; 9 1];
>> M3 = [ 3 4; 5 6; 8 9];

In memoria ci sono tre array

Per salvare tutti i dati in memoria usa il comando save seguito dal nome del file.

>> save nomefile.mat

Ora cancella tutti i dati in memoria con il comando clear

>> clear

Tutti i dati sono stati cancellati dalla memoria.

Se provi a richiamare la matrice M1, Octave ti restituisce errore

>> M1
error: 'M1' undefined near line 1 column 1

Per caricare i dati nel file in memoria, usa il comando load seguito dal nome del file

>> load nomefile.mat

Ora i dati sono di nuovo in memoria.

Se provi a richiamare l'array M1, puoi vedere il suo contenuto.

>> M1
M1 =
1 2 3
4 5 6

Nota. In questi esempio ti ho fatto vedere come salvare degli array ma il salvataggio funziona con tutti gli oggetti e le strutture di dati (variabili, grafici, array, ecc.). Le modalità del salvataggio e del caricamento sono sempre le stesse.

Come salvare soltanto alcuni oggetti

Octave ti permette anche di fare il salvataggio selettivo.

In questo caso devi indicare quali oggetti vuoi salvare nel file

Ad esempio, per salvare solo la matrice M1 digita

>> save nomefile2.mat M1

Per salvare le matrici M1 e M2, invece, digita

>> save nomefile3.mat M1 M2

In alternativa, per salvare i dati puoi usare anche questa sintassi

>> save("nomefile3.mat", "M1", "M2")

Nota. Se vuoi aggiungere altri oggetti nel salvataggio dei dati, indicali inserendo un ulteriore parametro dopo il nome del file. Ad esempio, per salvare le tre oggetti scrivi save nomefile3.mat M1 M2 M3 oppure save("nomefile3.mat", "M1", "M2" , "M3")

Per salvare tutti gli oggetti che cominciano con la lettera M usa il carattere speciale *

>> save nomefile3.mat M*

In ogni caso, il caricamento in memoria dei dati avviene sempre allo stesso modo.

Per caricare i dati in memoria devi usare il comando load

load nomefile2.mat

Come caricare un singolo oggetto in memoria

Se hai salvato molti oggetti dentro un file, puoi anche fare il caricamento selettivo ed evitare di caricarli tutti.

In questo caso devi indicare i singoli oggetti che vuoi caricare in memoria.

Perché fare il caricamento selettivo? Il caricamento selettivo è molto utile se lavori con i big data. Se il file contiene molti oggetti, caricarli in memoria causa uno spreco inutile di spazio di memoria, rallentare i tempi di elaborazione e può anche causare un errore di overflow memory. In generale, è buona norma caricare in memoria solo i datti che servono all'elaborazione.

Ad esempio, nel file nomefile.mat hai già salvato le matrici M1, M2, M3.

Per caricare in memoria soltanto la matrice M1 digita

>> load nomefile.mat M1

In questo modo carichi in memoria la matrice M1 ma non anche le matrici M2 e M3 presenti nel file.

Per caricare in memoria le matrici M1 e M2 digita

>> load nomefile.mat M1 M2

Questo comando carica in memoria le matrici M1 e M2 ma non la matrice M3.

In alternativa, puoi sare anche questa sintassi di caricamento selettivo.

>> load("nomefile.mat","M1","M2")

Nota. Per caricare tre o più oggetti in memoria aggiungi gli altri oggetti come ulteriore parametro del comando load. Ad esempio load nomefile.mat M1 M2 M3

Per caricare tutti gli oggetti che cominciano con M digita

>> load nomefile.mat M*

Come salvare un file dati in binario

Octave ti permette anche di salvare i dati in formato binario.

In questo caso devi aggiungere l'opzione -binary al salvataggio

>> save -binary nomefile4.mat

Il caricamento in memoria avviene allo stesso modo

>> load nomefile4.mat

Altre opzioni di salvataggio

Il comando save ha anche altre opzioni molto utili

  • -append
    aggiunge dati a un file esistente senza cancellare i dati pre-esistenti
  • -zip
    comprime i dati (utile per i big data)
  • -ascii
    salva i dati in formato testo
  • -binary
    salva i dati in formato binario
  • -hdf5
    salva i dati in formato HDF5

Se devi inserire più opzioni nel comando save usa questa sintassi generale

save ("-option1", ..., "file", "v1", ...)

Per vedere tutte le opzioni del comando save usa l'help di Octave

>> help save

Adesso hai tutte le informazioni necessarie per fare il salvataggio e il caricamento dei dati su Octave.




Non hai risolto il tuo problema? Scrivi una domanda