2014-01-25 36 views
1

我通过绘制该.MAT列表数据在Python

import scipy.io 
import matplotlib.pyplot as plt 
data = scipy.io.loadmat('arrytmia_data_bad.mat') 

加载的数据我认为这是

>>> data 
{'__version__': '1.0', 'data': array([[-0.01782227], 
     [-0.02450562], 
     [-0.02227783], 
     ..., 
     [ 0.30511475], 
     [ 0.29620361], 
     [ 0.28952026]]), '__header__': 'MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Tue Dec 3 20:15:00 2013', '__globals__': []} 

命令len(data)给了我4,这是一个惊喜,因为长度的列表应该是5001. 这必须是对命令len输出的曲解。

我建议的伪代码用于绘图

import numpy as np 
import matplotlib.pyplot as pp 
ar = np.arange(5001) # number of data points in the brackets 
pp.plot(ar, data, 'x') # TODO dimensions not matching here 
pp.show() 

什么是相对于时间绘制数据的一种方法?

+0

'LEN(字典())'让你存储在字典中元素的个数。所以它正在做它应该做的事情。你想要在键'数据'下存储的元素数量。你可以用'n_elem = len(data ['data'])'代替 – greole

回答

2

我想我们艰难的是:

import matplotlib.pyplot as plt 
import scipy.io 
data = scipy.io.loadmat('arrytmia_data_bad.mat') 
x = data['data'] 

plt.plot(x, linestyle='', marker='x') 
plt.show() 
+0

请看我的扩展到你的答案。我得到了AttributeError,该函数对象没有属性显示。 –

+0

我得到了完全空白的图片:https://dl.dropboxusercontent.com/u/62073194/Screen%20Shot%202014-01-26%20at%2014.52.14.png虽然数据是https://dl.dropboxusercontent .com/u/62073194/arrytmia_data_bad.mat –

+0

@Masi:确保'marker ='x''而不是'marker =''' – greole