Datenexport aus MATLAB: Dateiformate & Techniken
Datenexport (oder Ausgabe) in MATLAB bedeutet, in Dateien zu schreiben. MATLAB ermöglicht die Verwendung Ihrer Daten in einer anderen Anwendung, die ASCII-Dateien liest. Dafür bietet MATLAB verschiedene Datenexport-Optionen.
Sie können folgende Dateitypen erstellen:
Rechteckige, getrennte ASCII-Datendatei aus einem Array.
Tagebuch (oder Protokoll) der Tastatureingaben und der resultierenden Textausgabe.
Spezialisierte ASCII-Datei mit Low-Level-Funktionen wie fprintf.
MEX-Datei für den Zugriff auf Ihre C/C++- oder Fortran-Routine, die in ein bestimmtes Textdateiformat schreibt.
Darüber hinaus können Sie Daten auch in Tabellenkalkulationen exportieren.
Es gibt zwei Möglichkeiten, ein numerisches Array als getrennte ASCII-Datendatei zu exportieren:
Verwenden der save-Funktion mit dem Qualifizierer -ascii
Verwenden der dlmwrite-Funktion
Syntax für die Verwendung der save-Funktion:
save my_data.out num_array -ascii
wobei my_data.out die erstellte getrennte ASCII-Datendatei ist, num_array ein numerisches Array und -ascii der Spezifizierer ist.
Syntax für die Verwendung der dlmwrite-Funktion:
dlmwrite('my_data.out', num_array, 'dlm_char')
wobei my_data.out die erstellte getrennte ASCII-Datendatei ist, num_array ein numerisches Array und dlm_char das Trennzeichen ist.
Beispiel
Das folgende Beispiel demonstriert das Konzept. Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
Live Demo num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0]; save array_data1.out num_array -ascii; type array_data1.out dlmwrite('array_data2.out', num_array, ' '); type array_data2.out
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00 1 2 3 4 4 5 6 7 7 8 9 0
Bitte beachten Sie, dass der Befehl save -ascii und die Funktion dlmwrite nicht mit Zell-Arrays als Eingabe funktionieren. Um eine getrennte ASCII-Datei aus dem Inhalt eines Zell-Arrays zu erstellen, können Sie:
Entweder das Zell-Array mit der Funktion cell2mat in eine Matrix konvertieren
Oder das Zell-Array mit Low-Level-Datei-E/A-Funktionen exportieren.
Wenn Sie die save-Funktion verwenden, um ein Zeichen-Array in eine ASCII-Datei zu schreiben, schreibt sie den ASCII-Äquivalent der Zeichen in die Datei.
Beispiel: Schreiben wir das Wort 'hello' in eine Datei:
Live Demoh = 'hello'; save textdata.out h -ascii type textdata.out
MATLAB führt die obigen Anweisungen aus und zeigt folgendes Ergebnis an, das die Zeichen des Strings 'hello' im 8-stelligen ASCII-Format darstellt.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Schreiben in Tagebuchdateien
Tagebuchdateien sind Aktivitätsprotokolle Ihrer MATLAB-Sitzung. Die diary-Funktion erstellt eine exakte Kopie Ihrer Sitzung in einer Diskdatei, ohne Grafiken.
Um die diary-Funktion einzuschalten, geben Sie ein:
diary
Optional können Sie den Namen der Protokolldatei angeben, z. B.:
diary logdata.out
Um die diary-Funktion auszuschalten:
diary off
Sie können die Tagebuchdatei in einem Texteditor öffnen.
Datenexport in Textdatendateien mit Low-Level-E/A
Bisher haben wir numerische Arrays exportiert. Sie müssen jedoch möglicherweise andere Textdateien erstellen, einschließlich Kombinationen von numerischen und Zeichendaten, nicht-rechteckigen Ausgabedateien oder Dateien mit nicht-ASCII-Codierungsschemata. Für diese Zwecke bietet MATLAB die Low-Level-Funktion fprintf.
Wie bei Low-Level-E/A-Dateiaktivitäten müssen Sie vor dem Export eine Datei mit der fopen-Funktion öffnen oder erstellen und den Datei-Bezeichner erhalten. Standardmäßig öffnet fopen eine Datei nur zum Lesen. Sie sollten die Berechtigung zum Schreiben oder Anhängen angeben, z. B. 'w' oder 'a'.
Nach der Verarbeitung der Datei müssen Sie sie mit fclose(fid) schließen.
Das folgende Beispiel demonstriert das Konzept:
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
Live Demo % Matrix y mit zwei Zeilen erstellen x = 0:10:100; y = [x; log(x)]; % Datei zum Schreiben öffnen fid = fopen('logtable.txt', 'w'); % Tabellenkopf fprintf(fid, 'Log Function\n\n'); % Werte in Spaltenreihenfolge ausgeben % zwei Werte erscheinen in jeder Zeile der Datei fprintf(fid, '%f %f\n', y); fclose(fid); % Erstellte Datei anzeigen type logtable.txt
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
Log Function 0.000000 -Inf 10.000000 2.302585 20.000000 2.995732 30.000000 3.401197 40.000000 3.688879 50.000000 3.912023 60.000000 4.094345 70.000000 4.248495 80.000000 4.382027 90.000000 4.499810 100.000000 4.605170
MATLAB
- Azure File Storage erklärt: Einsteiger-Guide zu sicherem, skalierbarem Cloud Storage
- Datei-I/O in C meistern: Erstellen, Öffnen & Verwalten von Dateien
- MATLAB Datentypen: Umfassender Leitfaden
- MATLAB Operatoren meistern: Arithmetik, Logik, Bitweise Operationen
- MATLAB Matrizen Grundlagen: Erstellen, Referenzieren, Manipulieren
- MATLAB: Mehrdimensionale und spezielle Arrays meistern
- MATLAB-Colon-Notation meistern: Vektoren erstellen & effizient iterieren
- MATLAB – Zahlen: Typen, Speicherung und Konvertierung
- MATLAB Strings meistern: Einfache Erstellung & Verwendung
- MATLAB-Funktionen: Definition, Workspace, Ein- & Ausgaben