wdmzshly 发表于 2012-4-13 19:54

【求助】如何读取Simulink仿真曲线上的数据!!

本帖最后由 牛小贱 于 2014-3-9 19:55 编辑

simulink仿真的曲线以mat文件的形式保存(如dis,mat),应该是结构体形式的吧,在程序界面用load语句下载之后,还要怎样才能读取里面的数据
clear;
load C:\MATLAB7\work\dis.mat
sig=???

wdmzshly 发表于 2012-4-13 20:06

系统自带的mat可以这样用
clear;
load C:\MATLAB7\。。。。\qpc.mat
sig=zmat
这是为什么呀

牛小贱 发表于 2014-3-9 19:53

楼主可以尝试:打开示波器,点Parameters->Data History,Save Data to Workspace打勾,输入你需要的变量名,确定。然后在主窗口里就可以调用这些数据了!!
另外,关于matlab/Simulink数据的导入做以下说明:
mat数据格式是matlab的数据存储的标准格式。 可以在Matlab中象M文件一样打开,数据进入workspace
可以调用matlab的子程序库,用c或fortan调用mat格式的数据。
给你几个函数名:
matopen 打开mat文件
matclose 关闭mat文件
magetfp 取得mat文件的c语言句柄
matGetArray 取得一个数组
接下来,就是说明MATLAB中导入数据。通常由函数load实现,该函数的用法如下:
● load:如果matlab.mat文件存在,导入matlab.mat中的所有变量,如果不存在,则返回error。
● load filename:将filename中的全部变量导入到工作区中。
● load filename X Y Z ...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。
● load filename -regexp expr1 expr2 ...:通过正则表达式指定需要导入的变量。
● load -ascii filename:无论输入文件名是否包含有扩展名,将其以ASCII格式导入;如果指定的文件不是数字文本,则返回error。
● load -mat filename:无论输入文件名是否包含有扩展名,将其以mat格式导入;如果指定的文件不是MAT文件,则返回error。
另一个导入数据的常用函数为importdata,该函数的用法如下:
● importdata('filename'),将filename中的数据导入到工作区中;
● A = importdata('filename'),将filename中的数据导入到工作区中,并保存为变量A;
● importdata('filename','delimiter'),将filename中的数据导入到工作区中,以delimiter指定的符号作为分隔符 ;与load函数不同,importdata将文件中的数据以结构体的方式导入到工作区中。所以,楼主可以尝试:importdata(ss.mat)。希望对你有所帮助!!

Nicky_ONE 发表于 2014-3-9 21:02

本帖最后由 牛小贱 于 2014-3-25 18:21 编辑

楼主解答的很详细!!!很有耐心!!学习了。貌似感觉iimportdata(ss.mat)更好用一点……{:{26}:}

牛小贱 发表于 2014-3-25 18:37

wdmzshly 发表于 2012-4-13 20:06
系统自带的mat可以这样用
clear;
load C:MATLAB7。。。。qpc.mat


参考这篇帖子:http://forum.vibunion.com/thread-60052-1-1.html讲解很详细!!!!

沧海一声笑 发表于 2014-3-25 20:08

牛小贱 发表于 2014-3-25 18:37
参考这篇帖子:http://forum.vibunion.com/thread-60052-1-1.html讲解很详细!!!!

谢谢LZ无私分享!!!
页: [1]
查看完整版本: 【求助】如何读取Simulink仿真曲线上的数据!!