myhero2599 发表于 2006-6-13 13:47

[求助] 如何将GUI回调函数中得到的变量送到matlabworkspace里阿

function = simulink_Callback(h, eventdata, handles, varargin)
fangzhen1
a1=handles.num1;
b1=handles.den1;
a2=handles.num3;
b2=handles.den3;
set_param('fangzhen1/D(z)','Numerator',...
'a1','Denominator','b1');
set_param('fangzhen1/G(z)','Numerator',...
'a2','Denominator','b2');
为什么不能把a1 b1 a2 b2 送到simulink里阿

[ 本帖最后由 lxq 于 2007-5-2 23:48 编辑 ]

笑石头 发表于 2006-6-14 20:51

要把a1 b1 a2 b2 送到simulink<BR>你首先的把被传递的simulink模型打开,你可以添加以下代码<BR>...<BR>if isempty(find_sysrem('Name','fangzhen1')) <BR>   open_system('fangzhen1');%打开模型<BR>   open_system('fangzhen1/D(z)');%打开待设置的模块<BR>   figure();%括号里为带编辑模块的句2柄<BR>   set_param('fangzhen1/D(z)','Numerator',...<BR>    'a1','Denominator','b1'); %设置参数<BR>set_param('fangzhen1/G(z)','Numerator',...<BR>    'a2','Denominator','b2');%设置参数<BR>end

zhangenter 发表于 2006-6-15 20:51

这问题我也碰到过,楼主指令第一句用了<BR>fangzhen1<BR>已经达到了打开模型的功能了,二楼的说法有点问题<BR>执行set_param('fangzhen1/D(z)','Numerator', 'a1')<BR>这种写法并不是不能送进模型,而是模型会把D(z)的数值改为a1这个字符串。要改为<BR>set_param('fangzhen1/D(z)','Numerator',num2str(a1))<BR>如果a1是向量,则要在字符串num2str(a1)前面加'[',后面加']'
页: [1]
查看完整版本: [求助] 如何将GUI回调函数中得到的变量送到matlabworkspace里阿