Seite 1 von 1

Anfängerfrage: mat-file laden und plotten

Verfasst: Sonntag 10. Februar 2013, 21:30
von Grizzly
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

Re: Anfängerfrage: mat-file laden und plotten

Verfasst: Montag 11. Februar 2013, 10:18
von schaeffkoch
hallo, vielleicht liegt es an den daten?

Code: Alles auswählen

 print var1,var2

Re: Anfängerfrage: mat-file laden und plotten

Verfasst: Montag 11. Februar 2013, 10:37
von Grizzly
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 ?

Re: Anfängerfrage: mat-file laden und plotten

Verfasst: Montag 11. Februar 2013, 11:08
von 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.

Re: Anfängerfrage: mat-file laden und plotten

Verfasst: Montag 11. Februar 2013, 11:55
von Grizzly
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