Datenspeicherung in einer Datei mit Matlab
Ich möchte Ihnen erklären, wie Sie in Matlab Daten in einer Datei speichern und anschließend wieder in den Speicher laden können.
Warum Daten speichern? Beim Beenden von Matlab wird der Speicherbereich, in dem Ihr Arbeitsbereich im RAM gespeichert war, zurückgesetzt. Indem Sie Ihre Arbeitsplatzdaten auf der Festplatte speichern, können Sie diese bei Ihrer Rückkehr zu Matlab erneut laden. So vermeiden Sie es, alles noch einmal eingeben zu müssen.
Daten in einer Datei speichern - So geht's
Ein praktisches Beispiel soll Ihnen helfen.
Stellen Sie sich vor, Sie haben drei Arrays: M1, M2 und M3. Diese erzeugen Sie im Speicher mit folgenden Befehlen:
>> M1=[1 2 3; 4 5 6];
>> M2=[7 8 ; 9 1];
>> M3 = [3 4; 5 6; 8 9];
Um alle Daten Ihres Arbeitsbereiches zu speichern, nutzen Sie den Befehl "save" gefolgt vom gewünschten Dateinamen, so:
>> save filename.mat
Nun können Sie die Arbeitsbereichsdaten mit dem Befehl "clear" löschen oder Matlab verlassen und neu starten.
>> clear
Dies löscht alle Daten in Ihrem Speicher, und der Matlab-Arbeitsbereich wird zurückgesetzt. Versuchen Sie nun, die Matrix M1 zu nutzen, wird Matlab diese nicht finden und einen Fehler ausgeben.
>> M1
Unbekannte Funktion oder Variable 'M1'.
Um die Daten wieder in den Speicher zu laden, verwenden Sie den Befehl "load" mit dem Dateinamen:
>> load filename.mat
Mit diesem Befehl laden Sie die Daten aus der Datei zurück in Ihren Arbeitsbereich.
Geben Sie nun "M1" erneut ein, findet Matlab die Matrix im Speicher und zeigt Ihnen deren Inhalt.
>> M1
M1 =
1 2 3
4 5 6
Anmerkung. In diesen Beispielen haben Sie eine Matrix mit Zahlen gespeichert. Matlab ermöglicht jedoch das Speichern von Daten unterschiedlichster Art: Zahlen, Texte, Zeichen, Bilder und vieles mehr.
Spezifische Objekte speichern
Sie können auch nur bestimmte Objekte aus Ihrem Arbeitsbereich speichern. Dazu bestimmen Sie einfach, welche Objekte gespeichert werden sollen, wie hier gezeigt:
>> save filename2.mat M1
So wird ausschließlich die Matrix M1 in der Datei "filename2.mat" gespeichert.
Um M1 und M2 zu speichern, verwenden Sie diese Syntax:
>> save filename3.mat M1 M2
Alternativ können Sie auch folgendermaßen vorgehen:
>> save("filename3.mat", "M1", "M2")
Hinweis. Um weitere Objekte hinzuzufügen, fügen Sie diese am Ende der Befehlszeile ein. Um beispielsweise alle drei Objekte zu speichern, tippen Sie save filename3.mat M1 M2 M3 oder save("filename3.mat", "M1", " M2", "M3").
Mit dem Sonderzeichen * können Sie alle Objekte speichern, die mit einem bestimmten Buchstaben beginnen.
Um beispielsweise alle Objekte, die mit M anfangen, zu speichern, tippen Sie save filename3.mat M*.
>> save filename3.mat M*
Zum Laden der Daten in den Speicher nutzen Sie den Befehl load.
load nomefile2.mat
Einzelne Objekte in den Speicher laden
Wenn Sie viele Objekte in einer Datei gespeichert haben, kann es sein, dass Sie nur eines davon benötigen.
Matlab bietet die Möglichkeit, gezielt nur das benötigte Objekt zu laden, ohne alle Objekte zu laden.
Warum ist das wichtig? Daten beanspruchen Speicherplatz auf Ihrem Computer, und es ist unnötig, Daten zu laden, die Sie nicht verwenden werden. Durch das Laden nur der benötigten Daten sparen Sie RAM und Ihr Computer arbeitet schneller.
Um ein einzelnes Objekt zu laden, geben Sie einfach den Namen des Objekts nach dem Dateinamen an.
Wenn Sie zum Beispiel die Matrizen M1, M2 und M3 in der Datei "filename.mat" gespeichert haben und nur die Matrix M1 laden möchten, geben Sie load filename.mat M1 in die Kommandozeile ein.
>> load filename.mat M1
Matlab öffnet die Datei und lädt nur die Matrix M1 in den Speicher, die anderen Matrizen in der Datei bleiben unberücksichtigt.
Um M1 und M2 zu laden, geben Sie load filename.mat M1 M2 ein.
>> load filename.mat M1 M2
In diesem Fall lädt Matlab die Matrizen M1 und M2, aber nicht M3.
Alternativ können Sie folgende Syntax verwenden: "load('filename.mat','M1','M2')".
>> load("filename.mat","M1","M2")
Beachten Sie, dass Sie zum Laden von drei oder mehr Objekten diese einfach am Ende der Liste hinzufügen. Um zum Beispiel drei Matrizen zu laden, würden Sie load filename.mat M1 M2 M3 eingeben.
Sie können auch alle Objekte laden, die mit einem bestimmten Buchstaben beginnen.
Um beispielsweise alle Objekte, die mit M anfangen, zu laden, geben Sie load filename.mat M* ein.
>> load filename.mat M*
Daten im Binärformat speichern
Matlab erlaubt Ihnen auch, Daten in einem binären Format in einer Datei zu speichern.
Um Daten im Binärformat zu speichern, verwenden Sie den Befehl "save" mit der Option "-mat".
>> save -mat filename4.mat
Zum Laden der in einer Binärdatei vorhandenen Daten verwenden Sie den Befehl "load".
>> load nomefile4.mat
Wozu dient das Speichern im Binärformat?
Das Binärformat ist besonders nützlich, wenn Sie Daten, die in Matlab gespeichert wurden, mit anderen Programmen verarbeiten möchten.
Zusätzliche Speicheroptionen
Zusätzlich bietet der Befehl "save" in Matlab mehrere nützliche Optionen, darunter:
- -append
um Daten zu einer bestehenden Datei hinzuzuf ügen, ohne die vorhandenen Daten zu löschen - -nocompression
um Daten ohne Kompression zu speichern - -ascii
um Daten im ASCII-Textformat zu speichern - -mat
um Daten im Binärformat zu speichern - -struct
um Daten aus einer Struktur zu speichern.
Um mehrere Optionen im "save"-Befehl zu verwenden, nutzen Sie diese Syntax: "save('-option1', ..., 'file', 'v1', ...)".
save ("-option1", ..., "file", "v1", ...)
Um alle verfügbaren Optionen des "save"-Befehls zu sehen, geben Sie "help save" in die Kommandozeile ein.
>> help save