
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 usare 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.