Daten aus einer MATLAB-Datei mit Python?

8

Kennt jemand Methoden zum Extrahieren der Daten aus einer MATLAB fig-Datei mit Python? Ich weiß, dass dies binäre Dateien sind, aber die Methoden im Python Cookbook für .mat-Dateien Ссылка scheinen nicht zu funktionieren. fig Dateien ...

Vielen Dank im Voraus für jede Hilfe, Dan

    
Dan 17.11.2011, 19:16
quelle

6 Antworten

10

.fig Dateien sind .mat Dateien (enthält eine Struktur), siehe Ссылка

Als Referenz, die Sie states geben, werden Strukturen nur bis Version 7.1 unterstützt: Ссылка

Also, in MATLAB speichere ich mit -v7:

%Vor%

Dann benutze ich in Python 2.6.4:

%Vor%

Wo ich .__dict__ benutzt habe, um zu sehen, wie man die Struktur durchquert. Z.B. um XData und YData zu erhalten kann ich verwenden:

%Vor%

Zeige, dass ich plot([1 2],[3 4]) in MATLAB verwendet habe (das Kind ist die Achse und das Enkelkind ist die Linienserie).

    
Ramashalanka 17.11.2011, 23:12
quelle
6

Ich fand Alex 'Antwort sehr ansprechend, aber ich habe seinen Code ein wenig erweitert. Zuallererst habe ich die Präambel eingefügt, um zu zeigen, woher die Figur, das Label usw. kommt. Zweitens habe ich die Legende eingefügt! Ich bin neu bei Python, daher sind Verbesserungsvorschläge sehr willkommen.

%Vor%     
Sascha 21.02.2013 10:04
quelle
5

Hier ist mein Update von Saschas Beitrag. Jetzt kann es:

  • Anzeige gedreht, Tex-Labels
  • zeige xticks und yticks
  • an
  • bessere Handhabung von Markern
  • Gitter ein / aus
  • bessere Handhabung von Achsen und Legendenumerierung
  • Größe beibehalten

Der Code ist unten:

%Vor%     
johnml1135 28.04.2016 19:01
quelle
2

Wenn Sie eine MATLAB-Figur speichern, wird die Handle Graphics-Hierarchie in einer Struktur gespeichert, in einer .mat-Datei gespeichert und die Erweiterung in .fig geändert. Also .fig-Dateien sind nur .mat-Dateien, und wenn die Daten, die Sie suchen, irgendwo in der Originalfigur gespeichert wurden, wird es dort drin sein. Wenn Sie die Erweiterung manuell in .mat ändern, können Sie sie in MATLAB laden und einen Blick darauf werfen.

Ich fürchte, ich weiß nicht viel über das Lesen von .mat-Dateien aus Python, aber wenn Sie eine Möglichkeit haben, dies generell zu tun, sollten Sie auch in der Lage sein, eine .fig-Datei einzulesen.

    
Sam Roberts 17.11.2011 23:20
quelle
2

Dies ist viel einfacher verfügbar. Es basiert auf dem neueren Scipy und loadmat:

Ссылка

Und meine kleine Erweiterung für die einfachen 2D Linien ist:

%Vor%     
Alex 10.09.2012 05:38
quelle
0

Mit den Posts von Sascha wollte ich nur die in einer .fig-Datei gespeicherten x-Daten und y-Daten extrahieren.

Unten ist meine Python-Funktion, die eine Vereinfachung der Sascha-Funktion ist, die darauf abzielt, nur die Daten zu extrahieren. Ausgabe ist ein Wörterbuch. Seine Schlüssel sind die entsprechenden Bezeichnungen der Daten in der Figur.

Ich lege es dort hin. Froh, wenn das ein paar Minuten jemand anderem sparen könnte!

%Vor%     
AuréLien 07.11.2017 19:31
quelle

Tags und Links