matlab信号采样后的数据保如何存为可用的.mat格式的问题, 以及用plot作图让横轴显示时间而非序列的问题

向各位高手请教一个问题,我用simulink搭了一个模型仿真,输出端(我要考察的信号)接了一个示波器,并设置成将数据保存到工作空间,选择的是数组格式保存的,命名为y,可是为什么为此去工作空间查看,他都是二维的数组(就是现实的是<2561x2 double>)?我想要的知识一维的啊,为什么多了一维标示采样点序列的数据?另外,我要用plot 画图,结果横轴也是采样序列,我想让横轴显示是时间,有哪些方法呢?
正好我要把信号的采样值存成.mat形式的,然后要用小波工具箱分析,结果我就只能每次双击工作空间的这个y变量,然后双击进去,复制第二列的数据,然后新建一个变量z,把刚才复制到的一维数据粘贴进去,然后右击鼠标将z另存为.mat的文件才可以被用于小波工具箱来做小波分析,可是这样我觉得太麻烦了,有没有什么简便一点的方法?
我也这样做过:直接在我要取的信号后面加了一个 to file的模块,运行后就会有一个untitled.mat 的文件,但是我用小波分析工具箱打开时就会提醒里面没有一维信号,这是怎么回事呢??
问题有点多,谢谢高手解答,

你可以用 To Workspace(注意 save format 设定为 aray)把y输出到workspace里,这是1维的,再手动保存到文件里。 同时可以直接用 plot(tout, y) 画图。追问

就快要大功告成了,但是我发现变量tout(tout是simulink里面默认的变量吧)是1000*1的数组,为什么?而y是3005*1的数组,这个数组的长度不一样,所以不能画图啊,该怎么改成一样的呢?我后来加了一个CLOCK部件,在把这个clock送到工作空间,建立一个新的变量,就解决了长度不一样的问题了,请问还有更好的方法吗?谢谢!

追答

用CLOCK部件来统一时间序列个数是正确的。
如果这样还麻烦的话(因为还要手动画图和手动保存数据),可以考虑编写一个简单的m文件来控制simulink仿真,然后画图,再执行神经网络的相关命令。
1. 在该仿真里输入y到workspace里(save format 设定为 structure with time。
2. 在m文件里,用sim命令执行simulink 模型,然后处理上面的工作空间的数据,成为你要的一维形式。
3. 用plot命令画图。
4. 执行神经网络的相关命令

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-24
直接输出接OUT端,然后再workplace看变量名,默认为tout,和yout。直接用plot(tout,yout)就可以搞定。