Hauptinhalt

save

Speichern von Variablen aus dem Workspace in eine Datei

Beschreibung

save(filename) speichert alle Variablen des aktuellen Workspaces in einer binären MATLAB®-Datei (MAT-Datei) namens filename. Wenn filename besteht, überschreibt save die Datei.

Beispiel

save(filename,variables) speichert nur die Variablen oder Felder eines von variables angegebenen Strukturarrays.

Beispiel

save(filename,variables,fmt) speichert in dem von fmt angegebenen Dateiformat. Das Argument variables ist optional. Wenn Sie variables nicht angeben, speichert die Funktion save alle Variablen im Workspace.

Beispiel

save(filename,variables,version) speichert in die von version angegebene MAT-Datei-Version. Das Argument variables ist optional.

Beispiel

save(filename,variables,version,"-nocompression") speichert die Variablen unkomprimiert in die MAT-Datei. Die Option "-nocompression" unterstützt nur MAT-Datei Version 7 (Standard) und Version 7.3. Daher müssen Sie version als "-v7" oder "-v7.3" angeben. Das Argument variables ist optional.

Beispiel

save(filename,variables,"-append") fügt einer bestehenden Datei neue Variablen hinzu. Wenn eine Variable bereits in einer MAT-Datei besteht, überschreibt save sie mit dem Wert im Workspace.

Bei ASCII-Dateien hängt "-append" Daten an das Ende der Datei an.

Um an eine MAT-Datei Version 6 anzuhängen, müssen Sie zudem version als "-v6" angeben.

Beispiel

save(filename,variables,"-append","-nocompression") fügt einer bestehenden Datei neue Variablen ohne Kompression hinzu. Die bestehende Datei muss eine MAT-Datei Version 7 (Standard) oder 7.3 sein.

Beispiel

save filename ist die Befehlsform der Syntax. Die Befehlsform benötigt weniger Sonderzeichen. Sie müssen keine Klammern tippen oder die Eingabe in einfache oder doppelte Anführungszeichen setzen. Trennen Sie Eingaben mit Leerstellen statt Kommas. Wenn eine Eingabe Leerstellen umfasst, setzen Sie diese in einfache Anführungszeichen.

Beispielsweise sind beim Speichern einer Datei namens test.mat die folgenden Ausdrücke äquivalent:

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

Sie können beliebige der in den vorherigen Syntaxen beschriebene Eingaben aufnehmen. Um beispielsweise die Variable X in einer Datei namens my file.mat zu speichern:

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

Verwenden Sie die Befehlsform nicht, wenn eine der Eingaben wie beispielsweise filename eine Variable ist.

Beispiel

Beispiele

alle reduzieren

Speichern Sie alle Variablen aus dem Workspace in einer binären MAT-Datei test.mat. Ist filename eine Variable, verwenden Sie Funktionssyntax.

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

Andernfalls können Sie auch Befehlssyntax verwenden.

save test.mat

Entfernen Sie die Variablen aus dem Workspace und ermitteln Sie daraufhin mit der load-Funktion die Daten.

clear
load("test.mat")

Erstellen und speichern Sie zwei Variablen p und q in einer Datei namens pqfile.mat.

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

Die Funktion save speichert die Variablen in der Datei pqfile.mat im aktuellen Ordner.

Sie können ebenfalls Befehlssyntax verwenden, um die Variablen p und q zu speichern.

save pqfile.mat p q

Erstellen Sie zwei Variablen, speichern Sie sie in einer ASCII-Datei und zeigen Sie daraufhin den Dateiinhalt an.

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

Alternativ können Sie für die save-Operation Befehlssyntax verwenden.

save pqfile.txt p q -ascii

Erstellen Sie eine Struktur, die drei Felder enthält.

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

Speichern Sie die Felder der Struktur s1 als einzelne Variablen in einer Datei namens newstruct.mat.

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

Überprüfen Sie den Inhalt der Datei mithilfe der Funktion whos.

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

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

Erstellen Sie zwei Variablen und speichern Sie sie in einer MAT-Datei Version 7.3 namens example.mat.

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

Alternativ können Sie für die save-Operation Befehlssyntax verwenden.

save example.mat A B -v7.3

Erstellen Sie zwei Variablen und speichern Sie diese ohne Kompression in einer MAT-Datei Version 7.3 namens myFile.mat.

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

Alternativ können Sie für die save-Operation Befehlssyntax verwenden.

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

Die Option "-nocompression" ermöglicht ein schnelleres Speichern.

Speichern Sie zwei Variablen in einer MAT-Datei. Hängen Sie daraufhin der Datei eine dritte Variable an.

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

Zeigen Sie den Inhalt der MAT-Datei an.

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

  p          1x10               80  double              
  q         10x10              800  double              

Erstellen Sie eine neue Variable a und hängen Sie diese an die MAT-Datei an.

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

Zeigen Sie den Inhalt der MAT-Datei an.

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

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

Die Funktion save hängt die Variable a an test.mat an, ohne die vorherigen Variablen p und q zu überschreiben.

Hinweis: Um an eine MAT-Datei Version 6 anzuhängen, geben Sie sowohl "-v6" als auch "-append" an. Um die Variable a an die MAT-Datei Version 6 test.mat anzuhängen, führen Sie Folgendes aus:

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

Speichern Sie zwei Variablen in einer MAT-Datei. Hängen Sie daraufhin der Datei eine dritte Variable ohne Kompression an.

Erstellen Sie zwei Variablen A und B und speichern Sie diese in einer MAT-Datei Version 7.3. Standardmäßig komprimiert die save-Funktion Variablen, bevor sie sie in myFile.mat speichert.

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

Zeigen Sie den Inhalt der MAT-Datei an.

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

  A          5x5               200  double              
  B         10x10              800  double              

Erstellen Sie eine neue Variable C und hängen Sie sie ohne Kompression an myFile.mat an.

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

Zeigen Sie den Inhalt der MAT-Datei an.

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

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

Erstellen Sie mehrere Variablen und verwenden Sie Befehlssyntax, um diese in einer Datei namens myMat.mat zu speichern.

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

Modifizieren Sie die Variable c.

c = 3;

Speichern Sie nur Workspace-Variablen, die bereits in myMat.mat existieren.

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

Eingabeargumente

alle reduzieren

Name der Datei, angegeben als String-Skalar oder Zeichenvektor. Wenn Sie filename nicht angeben, speichert die Funktion save in einer Datei namens matlab.mat.

Wenn filename keine Erweiterung aufweist (d. h. keinen Punkt gefolgt von Text am Ende) und der Wert von fmt nicht angegeben ist, hängt die Funktion save .mat an filename an. Wenn filename keinen vollständigen Pfad enthält, speichert die Funktion save im aktuellen Ordner. Sie müssen über Schreibrechte für die Datei verfügen.

Um Workspace-Variablen in einer MAT-Datei an einem Remote-Speicherort zu speichern, geben Sie filename als URL in der folgenden Form an:

schemeName://pathToFile/fileName.mat

Basierend auf Ihrem Remote-Speicherort kann schemeName einen der Werte in der folgenden Tabelle annehmen.

Remote-SpeicherortschemeName
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs

Weitere Informationen zum Einrichten von MATLAB zum Zugriff auf Ihren Online-Speicherdienst finden Sie unter Work with Remote Data.

Wenn Sie die Befehlsform von save verwenden, müssen Sie keine Klammern tippen oder die Eingabe in einfache oder doppelte Anführungszeichen setzen. Wenn filename jedoch eine Leerstelle enthält, müssen Sie das Argument in einfache Anführungszeichen setzen. Beispiel: save 'filename withspace.mat'.

Beispiel: "myFile.mat"

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

Namen der zu speichernden Variablen, angegeben als einer oder mehrere String-Skalare oder Zeichenvektoren. Wenn Sie die Befehlsform von save verwenden, müssen Sie die Eingabe nicht in einfache Anführungszeichen setzen.

variables kann eine der folgenden Formen annehmen.

Form der variables-EingabeZu speichernde Variablen
var1,var2,...,varNSpeichert die aufgeführten Variablen, angegeben als einzelne String-Skalare oder Zeichenvektoren. Verwenden Sie den Platzhalter "*", um Muster abzugleichen. Beispielsweise speichert save("filename.mat","A*") oder save filename.mat A* alle Variablen, deren Namen mit A beginnen, im Workspace.
"-regexp",expr1,expr2,...,exprNSpeichert nur die Variablen, deren Namen den regulären Ausdrücken entsprechen, angegeben als String-Skalare oder Zeichenvektoren. Beispielsweise speichert save("filename.mat","-regexp","^Mon","^Tues") oder save filename.mat -regexp ^Mon ^Tues nur die Variablen im Workspace, deren Namen mit Mon oder Tues beginnen.
"-struct",structNameSpeichert die Felder der von structName angegebenen Skalarstruktur als einzelne Variablen in der Datei. save("filename.mat","-struct","S") speichert beispielsweise die Felder der Skalarstruktur S.
"-struct",structName,field1,field2,...,fieldNSpeichert die angegebenen Felder der angegebenen Skalarstruktur als einzelne Variablen in der Datei. save("filename.mat","-struct","S","a","b") speichert beispielsweise die Felder S.a und S.b.
"-struct",structName,"-regexp",expr1,expr2,...,exprNSpeichert nur die Felder, deren Namen den regulären Ausdrücken entsprechen, angegeben als String-Skalare oder Zeichenvektoren.
"-fromstruct",struct(var1,value1,var2,value2,...,varN,valueN)Speichert nur Variablen mit Namen und Werten aus der angegebenen Struktur. save("filename.mat","-fromstruct",struct("x",5,"y",int32(10),"z","hello")) speichert beispielsweise die Variable x mit dem Wert 5, die Variable y mit dem Wert 10 vom Typ int32 und die Variable z mit dem Wert "hello".

Dateiformat, angegeben als einer der Werte in dieser Tabelle.

Wert von fmtDateiformat
"-mat"

Binäres MAT-Datei-Format

"-ascii"

Textformat mit 8 Stellen Präzision

"-ascii","-tabs"

Tabulatorgetrenntes Textformat mit 8 Stellen Präzision

"-ascii","-double"

Textformat mit 17 Stellen Präzision

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

Tabulatorgetrenntes Textformat mit 17 Stellen Präzision

Wenn Sie die Befehlsform von save verwenden, müssen Sie keine Klammern tippen oder die Eingabe in einfache oder doppelte Anführungszeichen setzen. Beispiel: save myFile.txt -ascii -tabs.

Bei MAT-Dateien behalten auf einer Maschine gespeicherte und auf einer anderen Maschine geladene Daten so viel Präzision und Bereich bei, wie die unterschiedlichen Gleitkommaformate der Maschinen erlauben.

Verwenden Sie eines der Textformate, um numerische Werte von MATLAB in Textdateien zu speichern. In diesem Fall gilt:

  • Jede Variable muss ein 2D-Array vom Typ double sein.

  • Die Ausgabe enthält nur die reellen Komponenten komplexer Zahlen.

  • Die Funktion save schreibt die Daten jeder Variable sequenziell in die Datei. Wenn Sie die Funktion load zum Auslesen der Datei verwenden möchten, müssen alle Variablen dieselbe Anzahl Spalten aufweisen. Mit der Funktion load wird eine einzelne Variable aus der Datei erstellt.

Wenn Sie ein Textformat angeben und es sich bei einer beliebigen Variable um ein Zeichenarray handelt, übersetzt die Funktion save die Zeichen in die entsprechenden internen ASCII-Codes. 'abc' wird in einer Textdatei beispielsweise folgendermaßen angezeigt:

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

Beim Speichern an einem Remote-Speicherort unterstützt save die Angabe von fmt nur als "-mat".

Datentypen: string | char

Version von MAT-Datei, angegeben als einer der Werte in dieser Tabelle. Wenn Sie die Befehlsform von save verwenden, müssen Sie keine Klammern tippen oder die Eingabe in einfache oder doppelte Anführungszeichen setzen.

Wert von versionLädt in MATLAB-VersionenUnterstützte FunktionenKompressionMaximalgröße jeder Variable
"-v7.3"7.3 (R2006b) oder höher

Speichern von Teilen von Variablen sowie alle Funktionen von Version 7.

Ja (Standard)≥ 2 GB auf 64-Bit-Computern
"-v7"7.0 (R14) oder höher

Unicode®-Zeichencodierung; ermöglicht ein Teilen von Dateien zwischen Systemen, die unterschiedliche Zeichencodierung-Schemata verwenden, sowie alle Funktionen von Version 6. Version 7 unterstützt zudem ein Speichern von Variablen ohne Kompression mithilfe der Option "-nocompression".

Ja (Standard)231 Byte pro Variable
"-v6"5 (R8) oder höher

Speichern von N-D-Arrays, Zellenarrays und Struktur-Arrays; Variablennamen mit mehr als 19 Zeichen sowie alle Funktionen von Version 4.

Nein231 Byte pro Variable
"-v4"Alle

Speichern von 2-D-Arrays vom Typ double, Zeichenarrays und sparse Arrays vom Typ double.

Nein100.000.000 Elemente pro Array und 231 Bytes pro Variable

Wenn Datenelemente Funktionen benötigen, die die angegebene Version nicht unterstützt, speichert die Funktion save diese Elemente nicht und gibt eine Warnung aus. Sie können keine höhere Version als Ihre aktuelle Version der MATLAB-Software angeben.

Hinweis

MAT-Dateien der Version 7.3 verwenden ein HDF5-basiertes Format, das Overheard-Speicherplatz für die Beschreibung des Dateinhalts benötigt. Bei Zellenarrays, Struktur-Arrays und anderen Containern, die heterogene Datentypen speichern können, sind MAT-Dateien der Version 7.3 manchmal größer als MAT-Dateien der Version 7.

Hinweis

MAT-Dateien der Version 6 und Version 4 unterstützen nur ASCII-Zeichencodierung.

Um die Standardversion für MAT-Dateien anzuzeigen oder festzulegen, rufen Sie die Registerkarte Home auf und wählen Sie im Abschnitt Environment Settings aus. Wählen Sie MATLAB > General > MAT-Files aus und wählen Sie dann eine Option für MAT-file save format.

Datentypen: string | char

Einschränkungen

  • Wenn Sie versuchen, Daten aus zwei separaten MATLAB-Sitzungen zugleich in derselben Datei zu speichern, könnte dies die Datei beschädigen.

Tipps

  • Verwenden Sie für mehr Flexibilität bei der Erstellung von ASCII-Dateien fprintf.

  • Wenn Sie grafische Objekte mit der Funktion save speichern, kann dies eine große Datei ergeben, da die Datei alle Informationen enthält, die zur Regeneration des Objekts benötigt werden.

  • Das Speichern von Abbildungen mit der Funktion save wird nicht empfohlen. Verwenden Sie stattdessen die Funktion savefig. Wenn Sie save verwenden, um eine Abbildung in R2014b oder höher zu speichern, können frühere Versionen von MATLAB nicht auf die resultierende MAT-Datei zugreifen. Wenn Sie eine Abbildung mit save speichern, zeigt die Funktion eine Warnmeldung an. Löschen Sie Abbildungen, bevor Sie save verwenden. Beachten Sie hierbei, dass die Abbildungen sich womöglich nicht direkt in Ihrem Workspace befinden, sondern beispielsweise in einer Struktur oder im Workspace einer Callback-Funktion gespeichert sein könnten.

  • Das Argument filename akzeptiert jeden Namen, der auf der aktuellen Plattform gültig ist. Um sicherzustellen, dass die Funktion load auf jeder Plattform auf die Datei zugreifen kann, verwenden Sie für filename jedoch nicht die folgenden Zeichen: \ (Backslash), / (Schrägstrich), : (Doppelpunkt), * (Sternchen), ? (Fragezeichen), " (doppelte Anführungszeichen), < (kleiner als), > (größer als), | (senkrechter Strich), ' (Apostroph) oder ; (Strichpunkt).

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern