2016-11-11 2 views
-2

Ich habe das folgende Problem: Ich habe eine Matlab-Datenbank (.mat) mit Struktur 4x17x4 und 5 Felder. Die Felder darin sind "field_a", "field_b", "field_c", "field_d", "field_e". In Matlab ist es ziemlich einfach, ein Element daraus zu extrahieren, aber ich muss eine Lösung in Python finden. In Matlab mache ich das:Zugriff auf ein Element in einem mehrdimensionalen (3D und 4D) Array

data = {database(:,1,1).a} 

Wie kann ich "Daten" in Python extrahieren? Was ich jetzt getan haben, ist Matlab Datenbank in Python zu laden:

fnameSISO["States"] = sio.loadmat('databaseSISO_states') 

Aber wenn ich versuche, Daten zu extrahieren nicht funktioniert:

data = fnameSISO["States"][:,1,1] 

Außerdem habe ich versucht, mit der Datenbank zu laden :

fnameSISO["Loo"] = np.asarray(sio.loadmat('databaseSISO_states')) 

Es funktioniert auch nicht.

Was kann ich in dieser Situation tun? Wenn ich die Datenbank in einer JSON-Datei speichern kann, kann ich die benötigten Elemente extrahieren?

Vielen Dank im Voraus.

+0

Könnten Sie bitte einige Daten hinzufügen, mit denen Sie Ihren Code testen können? – sobek

+0

hi, danke für dein Interesse, aber ich kann die tatsächlichen Daten, die ich benutze, nicht wirklich teilen. Ich werde über eine Workaround denken :) –

+0

Sie sagen, dass es nicht funktioniert, was bedeutet das? Gibt es Fehlermeldungen, bekommen Sie falsche Daten? Sie sind viel zu vage ... – sobek

Antwort

1

Ich fand die Lösung. Ich habe beim Schreiben der Syntax einen Fehler gemacht. Lösung:

data = fname["States"]["database"]["field_a"][:,1,1] 
Verwandte Themen