Anfängerfrage: mat-file laden und plotten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Grizzly
User
Beiträge: 34
Registriert: Sonntag 10. Februar 2013, 21:18

Hallo Zusammen, ich bin blutiger Python Anfänger (habe aber MATLAB Erfahrung) und bräuchte einen Schups in die richtige Richtung...
Ich möchte ein mat-file laden und daraus plotten, der plot zeigt aber keine Kurve wobei es auch keine Fehlermeldung gibt:

Code: Alles auswählen

import numpy as np
import scipy.io   as sio                   
import matplotlib
import matplotlib.pyplot as plt      

mat_contents = sio.loadmat('file.mat') 

var1 = mat_contents['var1']
var2 = mat_contents['var2']

fig = plt.figure()
plt.plot(var1,var2,'k')
plt.show()
Die Werte an den Achsen stimmen zwar, aber eine Kurve wird nicht angezeigt ?

Vielen Dank für eure Hilfe
schaeffkoch
User
Beiträge: 38
Registriert: Dienstag 21. August 2012, 10:59

hallo, vielleicht liegt es an den daten?

Code: Alles auswählen

 print var1,var2
Benutzeravatar
Grizzly
User
Beiträge: 34
Registriert: Sonntag 10. Februar 2013, 21:18

Hallo, also der print Befehl

Code: Alles auswählen

print var1
retourniert die Daten z.B. so:

[[ 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300
1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700
2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100
4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500
5600 5700 5800 5900 6000 6100 6200 6300 6400 6500 6600 6700 6800 6900
7000 7100 7200 7300 7400]]

Code: Alles auswählen

print var1.shape
gibt

(1,75)

das gleiche für var2 ... aber im plot ist leider nichts zu sehen ?
BlackJack

@Grizzly: Die Form ist falsch, das sollten eindimensionale Arrays sein. Das kann man zum Beispiel ganz einfach mit der `reshape()`-Methode erreichen. Dabei darf man (die) eine Dimension auch als -1 angeben, dann wird automatisch aus der Anzahl der Elemente die passende Grösse für diese Dimension berechnet.
Benutzeravatar
Grizzly
User
Beiträge: 34
Registriert: Sonntag 10. Februar 2013, 21:18

Danke für die Antworten !
Ich konnte das Problem z.B. mit dem Zusatz im loadmat Befehl lösen

Code: Alles auswählen

mat_contents = sio.loadmat('file.mat', squeeze_me=True)
Schöne Grüße
Antworten