simulink与python进行数据交互

来源:互联网 发布:mac散热声音大 编辑:程序博客网 时间:2024/06/07 22:01

simulink与python进行数据交互是基于HDF5这种数据存储格式的,因此有必要首先介绍一下HDF5,如下。

HDF是用于存储和分发科学数据的一种自我描述、多对象文件格式。HDF是由美国国家超级计算应用中心(NCSA)创建的,以满足不同群体的科学家在不同工程项目领域之需要。HDF可以表示出科学数据存储和分布的许多必要条件。HDF被设计为:自述性:对于一个HDF文件里的每一个数据对象,有关于该数据的综合信息(元数据)。在没有任何外部信息的情况下,HDF允许应用程序解释HDF文件的结构和内容。通用性:许多数据类型都可以被嵌入在一个HDF文件里。例如,通过使用合适的HDF数据结构,符号、数字和图形数据可以同时存储在一个HDF文件里。灵活性:HDF允许用户把相关的数据对象组合在一起,放到一个分层结构中,向数据对象添加描述和标签。它还允许用户把科学数据放到多个HDF文件里。扩展性:HDF极易容纳将来新增加的数据模式,容易与其他标准格式兼容。跨平台性:HDF是一个与平台无关的文件格式。HDF文件无需任何转换就可以在不同平台上使用。

1、用simulink搭建一个模型,将需要的仿真数据导入到工作空间。如:timeI两组数据。

>> h5create('myfile.h5','/time',[19441 1]);

>> h5write('myfile.h5','/time', time);

>> h5create('myfile.h5','/I',[19441 1]);

>> h5write('myfile.h5','/I', I);

其中'myfile.h5'为创建的hdf5文件,'/time'为创建的dataset,[19441 1]为time的size。

 2、创建python脚本(需要安装h5py扩展包,下载地址:http://code.google.com/p/h5py/

f = h5py.File('myfile.h5', 'r')

I = f['I']

time = f['time']

plt.figure()

plt.plot(time[0, :], I[0, :])

plt.show()

 通过以上两个步骤,就可以将simulink里的数据导入到python中进行分析及处理了。

原创粉丝点击