Contenuto principale

save

Salvare le variabili dal workspace a un file

Descrizione

save(filename) salva tutte le variabili del workspace corrente in un file MATLAB® binario (file MAT), denominato filename. Se filename esiste, save sovrascrive il file.

esempio

save(filename,variables) salva solo le variabili o i campi di un array di struttura specificato da variables.

esempio

save(filename,variables,fmt) salva nel formato del file specificato da fmt. L'argomento variables è opzionale. Se non si specifica variables, la funzione save salva tutte le variabili nel workspace.

esempio

save(filename,variables,version) salva la versione del file MAT specificata da version. L'argomento variables è opzionale.

esempio

save(filename,variables,version,"-nocompression") salva le variabili nel file MAT senza compressione. L'opzione "-nocompression" supporta solo i file MAT della versione 7 (predefinita) e della versione 7.3. Pertanto, è necessario specificare version come "-v7" o "-v7.3". L'argomento variables è opzionale.

esempio

save(filename,variables,"-append") aggiunge nuove variabili a un file esistente. Se una variabile è già presente in un file MAT, save la sovrascrive con il valore presente nel workspace.

Per i file ASCII, "-append" aggiunge i dati alla fine del file.

Per effettuare un'aggiunta a un file MAT della versione 6, è necessario specificare anche version come "-v6".

esempio

save(filename,variables,"-append","-nocompression") aggiunge nuove variabili a un file esistente senza compressione. Il file esistente deve essere un file MAT della versione 7 (predefinita) o della versione 7.3.

esempio

save filename è la forma comando della sintassi. La forma comando richiede un minor numero di caratteri speciali. Non è necessario digitare parentesi o includere l'input tra virgolette singole o doppie. Separare gli input con spazi invece che con virgole. Se un input include spazi, includerlo tra virgolette singole.

Ad esempio, per salvare un file denominato test.mat, queste dichiarazioni sono equivalenti:

save test.mat    % command form
save("test.mat") % function form

È possibile includere uno qualsiasi degli input descritti nelle sintassi precedenti. Ad esempio, per salvare la variabile X in un file denominato my file.mat:

save 'my file.mat' X    % command form, using single quotes
save("my file.mat","X") % function form, using double quotes

Non utilizzare la forma comando quando uno qualsiasi degli input, come filename, è una variabile.

esempio

Esempi

comprimi tutto

Salvare tutte le variabili del workspace in un file MAT binario test.mat. Se filename è una variabile, utilizzare la sintassi della funzione.

filename = "test.mat";
save(filename)

In alternativa, è possibile utilizzare la sintassi del comando.

save test.mat

Rimuovere le variabili dal workspace, quindi recuperare i dati con la funzione load.

clear
load("test.mat")

Creare e salvare due variabili, p e q, in un file denominato pqfile.mat.

p = rand(1,10);
q = ones(10);
save("pqfile.mat","p","q")

La funzione save salva le variabili nel file pqfile.mat, nella cartella corrente.

È inoltre possibile utilizzare la sintassi del comando per salvare le variabili p e q.

save pqfile.mat p q

Creare due variabili, salvarle in un file ASCII e visualizzare il contenuto del file.

p = rand(1,3);
q = ones(3);
save("pqfile.txt","p","q","-ascii")
type("pqfile.txt")
   8.1472369e-01   9.0579194e-01   1.2698682e-01
   1.0000000e+00   1.0000000e+00   1.0000000e+00
   1.0000000e+00   1.0000000e+00   1.0000000e+00
   1.0000000e+00   1.0000000e+00   1.0000000e+00

In alternativa, utilizzare la sintassi del comando per l'operazione save.

save pqfile.txt p q -ascii

Creare una struttura che contenga tre campi.

s1.a = 12.7;
s1.b = {"abc",[4 5; 6 7]};
s1.c = "Hello!";

Salvare i campi della struttura s1 come variabili individuali in un file denominato newstruct.mat.

save("newstruct.mat","-struct","s1")

Controllare il contenuto del file utilizzando la funzione whos.

whos("-file","newstruct.mat")
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x2               438  cell                
  c          -                166  string              

Creare due variabili e salvarle in un file MAT della versione 7.3 denominato example.mat.

A = rand(5);
B = magic(10);
save("example.mat","A","B","-v7.3")

È anche possibile utilizzare la sintassi del comando per l'operazione save.

save example.mat A B -v7.3

Creare due variabili e salvarle in un file MAT della versione 7.3, senza compressione, denominato myFile.mat.

A = rand(5);
B = magic(10);
save("myFile.mat","A","B","-v7.3","-nocompression")

In alternativa, utilizzare la sintassi del comando per l'operazione save.

save myFile.mat A B -v7.3 -nocompression

L'opzione "-nocompression" facilita un salvataggio più rapido.

Salvare due variabili in un file MAT. Quindi, aggiungere una terza variabile allo stesso file.

p = rand(1,10);
q = ones(10);
save("test.mat","p","q")

Visualizzare il contenuto del file MAT.

whos("-file","test.mat")
  Name       Size            Bytes  Class     Attributes

  p          1x10               80  double              
  q         10x10              800  double              

Creare una nuova variabile a e aggiungerla al file MAT.

a = 50;
save("test.mat","a","-append")

Visualizzare il contenuto del file MAT.

whos("-file","test.mat")
  Name       Size            Bytes  Class     Attributes

  a          1x1                 8  double              
  p          1x10               80  double              
  q         10x10              800  double              

La funzione save aggiunge la variabile a a test.mat senza sovrascrivere le variabili precedenti p e q.

Nota: per effettuare un'aggiunta a un file MAT della versione 6, specificare sia "-v6" che "-append". Ad esempio, per aggiungere la variabile a al file MAT della versione 6 test.mat, eseguire:

save("test.mat","a","-v6","-append")

Salvare due variabili in un file MAT. Quindi aggiungere una terza variabile, senza compressione, allo stesso file.

Creare due variabili A e B e salvarle in un file MAT della versione 7.3. Per impostazione predefinita, la funzione save comprime le variabili prima di salvarle in myFile.mat.

A = rand(5);
B = magic(10);
save("myFile.mat","A","B","-v7.3")

Visualizzare il contenuto del file MAT.

whos("-file","myFile.mat")
  Name       Size            Bytes  Class     Attributes

  A          5x5               200  double              
  B         10x10              800  double              

Creare una nuova variabile C e aggiungerla, senza compressione, a myFile.mat.

C = 5;
save("myFile.mat","C","-append","-nocompression")

Visualizzare il contenuto del file MAT.

whos("-file","myFile.mat")
  Name       Size            Bytes  Class     Attributes

  A          5x5               200  double              
  B         10x10              800  double              
  C          1x1                 8  double              

Creare diverse variabili e utilizzare la sintassi del comando per salvarle in un file denominato myMat.mat.

a = 1;
b = 2;
c = 7;
d = 4;
save myMat.mat a c

Modificare la variabile c.

c = 3;

Salvare solo le variabili del workspace già presenti in myMat.mat.

existingVars = whos("-file","myMat.mat");
save("myMat.mat",existingVars.name)

Argomenti di input

comprimi tutto

Nome del file, specificato come scalare di stringa o vettore di caratteri. Se non si specifica filename, la funzione save salva in un file denominato matlab.mat.

Se filename non ha un'estensione (ossia, non termina con un punto seguito da testo) e il valore di fmt non è specificato, la funzione save aggiunge .mat a filename. Se filename on include un percorso completo, la funzione save salva nella cartella corrente. È necessario disporre dei permessi di scrittura sul file.

Per salvare le variabili del workspace in un file MAT in una posizione remota, specificare filename come un localizzatore uniforme di risorse (URL) in questa forma:

schemeName://pathToFile/fileName.mat

In base alla posizione remota, schemeName può essere uno dei valori di questa tabella.

Posizione remotaschemeName
Amazon S3™s3
Archiviazione Blob di Windows Azure®wasb, wasbs

Per maggiori informazioni sull'impostazione di MATLAB per accedere al servizio di archiviazione online, vedere Work with Remote Data.

Quando si utilizza la forma comando di save, non è necessario includere l'input tra virgolette singole o doppie. Tuttavia, se filename contiene uno spazio, è necessario includere l'argomento tra virgolette singole. Ad esempio, save 'filename withspace.mat'.

Esempio "myFile.mat"

Esempio "s3://myBucket/myPath/myFile.mat"

Nomi delle variabili da salvare, specificati come uno o più scalari di stringhe o vettori di caratteri. Quando si utilizza la forma comando di save, non è necessario includere l'input tra virgolette singole.

variables può presentarsi in una di queste forme.

Forma dell'input variablesVariabili da salvare
var1,var2,...,varNSalva le variabili elencate, specificate come singoli scalari di stringhe o vettori di caratteri. Utilizza il carattere jolly "*" per abbinare i pattern. Ad esempio, save("filename.mat","A*") o save filename.mat A* salva tutte le variabili del workspace i cui nomi iniziano con A.
"-regexp",expr1,expr2,...,exprNSalva solo le variabili i cui nomi corrispondono alle espressioni regolari, specificate come scalari di stringhe o vettori di caratteri. Ad esempio, save("filename.mat","-regexp","^Mon","^Tues") o save filename.mat -regexp ^Mon ^Tues salva solo le variabili del workspace i cui nomi iniziano con Mon o Tues.
"-struct",structNameSalva i campi della struttura scalare specificata da structName come variabili individuali nel file. Ad esempio, save("filename.mat","-struct","S") salva i campi della struttura scalare S.
"-struct",structName,field1,field2,...,fieldNSalva i campi specificati della struttura scalare specificata come variabili individuali nel file. Ad esempio, save("filename.mat","-struct","S","a","b") salva i campi S.a e S.b.
"-struct",structName,"-regexp",expr1,expr2,...,exprNSalva solo i campi i cui nomi corrispondono alle espressioni regolari, specificate come scalari di stringhe o vettori di caratteri.
"-fromstruct",struct(var1,value1,var2,value2,...,varN,valueN)Salva solo le variabili con nomi e valori della struttura specificata. Ad esempio, save("filename.mat","-fromstruct",struct("x",5,"y",int32(10),"z","hello")) slava la variabile x con il valore 5, la variabile y con il valore 10 del tipo int32 e la variabile z con il valore "hello".

Formato del file, specificato come uno dei valori nella tabella sottostante.

Valore di fmtFormato del file
"-mat"

Formato file MAT binario

"-ascii"

Formato di testo con 8 cifre di precisione

"-ascii","-tabs"

Formato di testo delimitato da tabulazioni con 8 cifre di precisione

"-ascii","-double"

Formato testo con 17 cifre di precisione

"-ascii","-double","-tabs"

Formato di testo delimitato da tabulazioni con 17 cifre di precisione

Quando si utilizza la forma comando di save, non è necessario includere l'input tra virgolette singole o doppie. Ad esempio, save myFile.txt -ascii -tabs.

Per i file MAT, i dati salvati su una macchina e caricati su un'altra mantengono la massima accuratezza e intervallo consentiti dai diversi formati in virgola mobile delle macchine.

Utilizzare uno dei formati di testo per salvare valori numerici di MATLAB in file di testo. In questo caso:

  • Ogni variabile deve essere un array bidimensionale double.

  • L'output include solo il componente reale dei numeri complessi.

  • La funzione save scrive i dati di ogni variabile in modo sequenziale sul file. Se si intende utilizzare la funzione load per leggere il file, tutte le variabili devono avere lo stesso numero di colonne. La funzione load rea una singola variabile dal file.

Se si specifica un formato di testo e una qualsiasi variabile è un array di caratteri, la funzione save traduce i caratteri nei corrispondenti codici ASCII interni. Ad esempio, 'abc' appare in un file di testo come:

  9.7000000e+001  9.8000000e+001  9.9000000e+001

Quando si salva in una posizione remota, save supporta la specifica di fmt solo come "-mat".

Tipi di dati: string | char

Versione del file MAT, specificata come uno dei valori nella tabella sottostante. Quando si utilizza la forma comando di save, non è necessario includere l'input tra virgolette singole o doppie.

Valore di versionCaricamenti nelle versioni MATLABFeature supportateCompressioneGrandezza massima di ciascuna variabile
"-v7.3"7.3 (R2006b) o successive

Salvataggio di parti di variabili e di tutte le feature della versione 7.

Sì (predefinita)≥ 2 GB su computer a 64 bit
"-v7"7.0 (R14) o successive

Codifica dei caratteri Unicode®, che consente la condivisione di file tra sistemi che utilizzano diversi schemi di codifica dei caratteri predefiniti e tutte le feature della versione 6. La versione 7 supporta inoltre il salvataggio delle variabili senza compressione utilizzando l'opzione "-nocompression".

Sì (predefinita)231 byte per variabile
"-v6"5 (R8) o successive

Salvataggio di N-D, array di celle e array di struttura; nomi delle variabili più lunghi di 19 caratteri e tutte le feature della versione 4.

No231 byte per variabile
"-v4"Tutte

Salvataggio di array double bidimensionali, array di caratteri e array sparse double.

No100.000.000 elementi per array e 231 byte per variabile

Se alcuni elementi di dati richiedono feature non supportate dalla versione specificata, la funzione save non salva tali elementi e produce un avviso. Non è possibile specificare una versione successiva alla versione attuale del software MATLAB in uso.

Nota

I file MAT della versione 7.3 utilizzano un formato basato su HDF5 che richiede una certa quantità di memoria aggiuntiva per descrivere il contenuto del file. Per gli array di celle, gli array di struttura o altri contenitori che possono memorizzare tipi di dati eterogenei, i file MAT della versione 7.3 sono a volte più grandi di quelli della versione 7.

Nota

I file MAT della versione 6 e della versione 4 supportano solo la codifica dei caratteri ASCII.

Per visualizzare o impostare la versione predefinita per i file MAT, accedere alla scheda Home e nella sezione Environment selezionare Settings. Selezionare MATLAB > General > MAT-Files, quindi scegliere un'opzione MAT-file save format.

Tipi di dati: string | char

Limiti

  • Il tentativo di salvare contemporaneamente i dati di due sessioni di MATLAB separate nello stesso file può causare la corruzione del file.

Suggerimenti

  • Per una maggiore flessibilità nella creazione di file ASCII, utilizzare fprintf.

  • Il salvataggio degli oggetti dei grafici con la funzione save può generare un file di grandi dimensioni, poiché il file contiene tutte le informazioni necessarie per rigenerare l'oggetto.

  • Il salvataggio delle figure con la funzione save non è consigliato. Utilizzare invece la funzione savefig. L'utilizzo di save per salvare una figura nella release R2014b, o successive, rende un file MAT inaccessibile nelle versioni precedenti di MATLAB. Se si utilizza save per salvare una figura, la funzione visualizza un messaggio di avviso. Cancellare tutte le figure prima di utilizzare save. Tenere presente che le figure potrebbero non trovarsi direttamente nel workspace, ma potrebbero, ad esempio, essere memorizzate in una struttura o nel workspace di una funzione di richiamo.

  • L'argomento filename può essere un qualsiasi nome valido sulla piattaforma corrente. Tuttavia, per garantire che la funzione load possa accedere al file su qualsiasi piattaforma, non utilizzare nessuno di questi caratteri in filename: \ (barra retroversa), / (barra obliqua), : (due punti), * (asterisco), ? (punto interrogativo), " (doppie virgolette), < (segno meno di), > (segno maggiore di), | (barra verticale), ' (apostrofo) o ; (punto e virgola).

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a

espandi tutto