Daten speichern und importieren in Octave
In dieser Octave-Lektion werde ich erklären, wie man Daten mithilfe von Dateien in Octave speichert und lädt.
Warum ist es wichtig, Daten zu speichern? Das Speichern von Daten bedeutet, die Daten, die sich im Arbeitsspeicher (RAM) des Computers befinden, in einer Datei auf der Festplatte oder einem anderen Speichergerät (z. B. USB-Stick) abzulegen. Die Daten im RAM des Computers sind flüchtig, das heißt, sie gehen verloren, wenn der Computer ausgeschaltet oder Octave geschlossen wird. Im Gegensatz dazu sind in einer Datei gespeicherte Daten dauerhaft und können bei jedem Neustart des PCs wieder in den RAM geladen werden, ohne sie jedes Mal neu schreiben zu müssen.
Wie man Daten speichert
Lassen Sie mich Ihnen ein praktisches Beispiel geben.
Erstellen Sie drei Arrays mit den Namen M1, M2, M3
>> M1=[1 2 3; 4 5 6];
>> M2=[7 8 ; 9 1];
>> M3 = [ 3 4; 5 6; 8 9];
Es befinden sich nun drei Arrays im Arbeitsspeicher.
Um alle Daten im Arbeitsspeicher zu speichern, verwenden Sie den Befehl save gefolgt von dem Dateinamen
save dateiname.mat
Löschen Sie nun alle Daten im Arbeitsspeicher mit dem Befehl clear:
>> clear
Alle Daten wurden aus dem Arbeitsspeicher gelöscht.
Wenn Sie versuchen, auf die Matrix M1 zuzugreifen, gibt Octave einen Fehler aus:
>> M1
error: 'M1' undefined near line 1 column 1
Um die Daten aus der Datei wieder in den Arbeitsspeicher zu laden, verwenden Sie den Befehl load gefolgt von dem Dateinamen
>> load dateiname.mat
Nun sind die Daten wieder im Arbeitsspeicher.
Wenn Sie versuchen, auf das Array M1 zuzugreifen, können Sie dessen Inhalt sehen:
>> M1
M1 =
1 2 3
4 5 6
Hinweis. In diesem Beispiel habe ich Ihnen gezeigt, wie man Arrays speichert, aber die Speicherfunktion funktioniert mit allen Objekten und Datenstrukturen (Variablen, Plots, Arrays usw.) gleich. Die Verfahren zum Speichern und Laden sind immer die gleichen.
Wie man nur bestimmte Objekte speichert
Octave ermöglicht es Ihnen auch, selektives Speichern durchzuführen. In diesem Fall müssen Sie angeben, welche Objekte Sie in der Datei speichern möchten.
Um zum Beispiel nur die Matrix M1 zu speichern, geben Sie Folgendes ein
>> save dateiname2.mat M1
Um die Matrizen M1 und M2 zu speichern, geben Sie einfach Folgendes ein
>> save dateiname3.mat M1 M2
Alternativ können Sie auch diese Syntax verwenden, um die Daten zu speichern.
>> save("dateiname3.mat", "M1", "M2")
Hinweis. Wenn Sie zusätzliche Objekte zu den gespeicherten Daten hinzufügen möchten, geben Sie sie als zusätzliche Parameter nach dem Dateinamen an. Zum Beispiel, um drei Objekte zu speichern, schreiben Sie save dateiname3.mat M1 M2 M3 oder save("dateiname3.mat", "M1", "M2", "M3").
Um alle Objekte zu speichern, die mit dem Buchstaben M beginnen, verwenden Sie das Sonderzeichen *
>> save dateiname3.mat M*
Unabhängig davon, wie Sie die Daten speichern, erfolgt das Laden der Daten in den Arbeitsspeicher immer auf die gleiche Weise.
Um die Daten in den Arbeitsspeicher zu laden, müssen Sie den Befehl load verwenden.
load dateiname2.mat
Wie man ein einzelnes Objekt lädt
Wenn Sie mehrere Objekte in einer Datei gespeichert haben, können Sie sich für selektives Laden entscheiden, um nur die benötigten Objekte zu laden und unnötiges Laden zu vermeiden.
Dazu müssen Sie die spezifischen Objekte angeben, die Sie in den Arbeitsspeicher laden möchten.
Warum selektives Laden verwenden? Selektives Laden ist äußerst nützlich beim Arbeiten mit großen Datenmengen. Wenn eine Datei viele Objekte enthält, kann das Laden aller Objekte in den Arbeitsspeicher zu unnötigem Speicherverbrauch, langsamer Verarbeitung und sogar zu einem Speicherüberlauffehler führen. Im Allgemeinen ist es bewährte Praxis, nur die für die Verarbeitung erforderlichen Daten in den Arbeitsspeicher zu laden.
Angenommen, in der Datei mit dem Namen filename.mat haben Sie bereits Matrizen M1, M2 und M3 gespeichert.
Um nur die Matrix M1 in den Arbeitsspeicher zu laden, geben Sie Folgendes ein
>> load dateiname.mat M1
Auf diese Weise laden Sie die Matrix M1 in den Arbeitsspeicher, jedoch nicht die Matrizen M2 und M3, die ebenfalls in der Datei vorhanden sind.
Um die Matrizen M1 und M2 in den Arbeitsspeicher zu laden, geben Sie Folgendes ein
>> load dateiname.mat M1 M2
Dieser Befehl lädt die Matrizen M1 und M2 in den Arbeitsspeicher, jedoch nicht die Matrix M3.
Alternativ können Sie auch diese Syntax für das selektive Laden verwenden
>> load("dateiname.mat","M1","M2")
Hinweis. Um drei oder mehr Objekte in den Arbeitsspeicher zu laden, fügen Sie die anderen Objekte als zusätzliche Parameter des load-Befehls hinzu. Zum Beispiel load dateiname.mat M1 M2 M3
Um alle Objekte zu laden, die mit M beginnen, geben Sie Folgendes ein:
>> load dateiname.mat M*
Wie man Daten in binärem Format speichert
Octave ermöglicht es Ihnen auch, Daten in binärem Format zu speichern.
In diesem Fall müssen Sie die Option -binary dem save-Befehl hinzufügen.
>> save -binary filename4.mat
Um die Daten in den Arbeitsspeicher zu laden, können Sie die gleiche Methode wie zuvor verwenden.
>> load dateiname4.mat
Zusätzliche Speicherungsoptionen
Um die Daten in den Arbeitsspeicher zu laden, können Sie die gleiche Methode wie zuvor verwenden.
- -append
hängt Daten an eine vorhandene Datei an, ohne vorhandene Daten zu löschen - -zip
komprimiert die Daten (nützlich für große Datenmengen) - -ascii
speichert die Daten im Textformat - -binary
speichert und importiert Daten in Octave im Binärformat - -hdf5
speichert die Daten im HDF5 format
Falls Sie mehrere Optionen im 'save'-Befehl angeben möchten, verwenden Sie die folgende allgemeine Syntax:
>> save ("-option1", ..., "datei", "v1", ...)
Um alle verfügbaren Optionen für den 'save'-Befehl anzuzeigen, nutzen Sie die Hilfe von Octave:
>> help save
Nun sind Sie bestens informiert, wie Sie Daten in Octave speichern und laden können.