回 帖 发 新 帖 刷新版面

主题:[讨论]誰能幫我看一下關於s-function的問題

想破頭,誰能幫我看一下為什麼不能先執行untitled2.m的檔案,而是要先執行ex6_12.m再執行untitled2.m才有畫面
,初學gui與sfunction,這兩個間的參數傳遞還不太會用,麻煩高手解答

已附上檔案,麻煩解壓縮,謝謝(matlab版本為R2007B)

回复列表 (共1个回复)

沙发

ex6_12.m中有这样两句:clear all;close all
是为了不让Matlab Workspace中已经有的变量和程序中的变量有重名,从而影响程序的运行。
我想你是直接把ex6_12.m中的程序中搬到GUI中来的,所以有的时候会出现问题的。你如果直接运行untitled2.fig,那么在点击按钮后出现的错误提示是holdp.mdl/from workspace模块的设置错误。
所以,我将你的mdl模块中的from workspace中的[t' data],改为了var,而在按钮的程序下加入下面的语句:
var=struct;
var.time=t;
var.signals.values=data;
var.signals.dimensions=1;
这样程序就能正常的运行了。你可以试试。
另外建议,你将其中计算t的程序改为:t=1:length(data);
这样的话,就不用for循环语句了。从而让程序运行的更快。如果你需要的话,我可以把运行结果的图片发给你。

还有其他问题,可以联系我:jonpong@yahoo.cn

我来回复

您尚未登录,请登录后再回复。点此登录或注册