向北飞 发表于 2009-4-19 17:19

遇到的一点问题,期待高手解决

最近解一个耦合方程,做一个简单的界面,但是在最后一步出现了一点计算结果显示方面的问题,在论坛里搜索了一下相关的东西,没找到解决途径。
以下是程序部分:
H=axes('unit','normalized','position',,'visible','off');
h_fig=get(H,'parent');
h_text1=uicontrol(h_fig,'style','text',...
    'unit','normalized','position',,...
    'horizontal','left','string',{'Fiber Length(Km)'},...
    'background','w',...
    'fontsize',10);
h_edit1=uicontrol(h_fig,'style','edit',...
    'unit','normalized','position',,...
    'background','w',...
   'callback',[...
    'Length=str2num(get(gcbo,''string''));']);
h_text2=uicontrol(h_fig,'style','text',...
    'unit','normalized','position',,...
    'horizontal','left','string',{'Pump in(mW)'},...
    'background','w',...
    'fontsize',10);
h_edit2=uicontrol(h_fig,'style','edit',...
    'unit','normalized','position',,...
    'background','w',...
    'callback',[...
    'Pump=str2num(get(gcbo,''string''));']);

h_text3=uicontrol(h_fig,'style','text',...
    'unit','normalized','position',,...
    'horizontal','left','string',{'Signal in(mW)'},...
    'background','w',...
    'fontsize',10);
h_edit3=uicontrol(h_fig,'style','edit',...
    'unit','normalized','position',,...
    'background','w',...
    'callback',[...
    'Signal=str2num(get(gcbo,''string''));',...
    'options = odeset(''RelTol'',1e-4,''AbsTol'',);',...
    ' = ode45(@rigid,,,options);',...
    'z=0:Length;',...
    'x=Signal*exp(-0.19*z''/4.343);',...
    'Gain=10*log10(Y(Length+1,2)/x(Length+1))']);
h_edit4=uicontrol(h_fig,'style','edit',...
    'unit','normalized','position',,...
    'background','w');
calculate=['Gain=10*log10(Y(Length+1,2)/x(Length+1));'];
h_button=uicontrol(h_fig,'style','push',...
    'unit','normalized','position',,...
    'background','w',...
    'string','calculate');
set(h_edit4,num2str(Gain))
界面如附件所示。

要实现的功能:在前三个edit只能过输入数据后,点击“calculate”后,要在edit4中显示对应的计算结果。

出现的问题是:
运行程序后可以显示结果,但是显示的是前一组数据的,当我改变输入的数据后,可以在命令窗中显示结果,但是在界面上的edit4中无法更新。

期待高手赐教,谢谢。

[ 本帖最后由 向北飞 于 2009-4-19 17:20 编辑 ]

yufeng 发表于 2009-4-21 07:48

要把数据传递给对应的edit

向北飞 发表于 2009-4-22 23:05

这个……怎么传递啊,使用set吗?

yufeng 发表于 2009-4-23 08:36

是的   。

向北飞 发表于 2009-4-24 12:44

set(h_edit4,num2str(Gain))
这个好象不对

liushuiwuxin 发表于 2009-4-30 15:19

set(h_edit4,'string,'num2str(Gain))再看看

ydlcsu 发表于 2009-4-30 17:50

用GUIDE写吧。你还没到用m语言写GUI的水平。看你写的程序乱的很,而且这些写法连debug都不好弄。如果你一定要用m语言写,就把每个callback的命令放到独立的函数文件里。然后再看看不同函数间怎么参数传递。

向北飞 发表于 2009-5-29 12:15

非常谢谢大家,听取ydlcsu及生活中一些朋友的意见开始研究guide
页: [1]
查看完整版本: 遇到的一点问题,期待高手解决