声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 983|回复: 7

[编程技巧] 遇到的一点问题,期待高手解决

[复制链接]
发表于 2009-4-19 17:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

h_text3=uicontrol(h_fig,'style','text',...
    'unit','normalized','position',[0.25,0.4,0.18,0.085],...
    'horizontal','left','string',{'Signal in(mW)'},...
    'background','w',...
    'fontsize',10);
h_edit3=uicontrol(h_fig,'style','edit',...
    'unit','normalized','position',[0.61,0.4,0.18,0.085],...
    'background','w',...
    'callback',[...
    'Signal=str2num(get(gcbo,''string''));',...
    'options = odeset(''RelTol'',1e-4,''AbsTol'',[1e-4 1e-4]);',...
    '[T,Y] = ode45(@rigid,[0:Length],[Pump Signal],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',[0.25,0.24,0.54,0.1],...
    'background','w');
calculate=['Gain=10*log10(Y(Length+1,2)/x(Length+1));'];
h_button=uicontrol(h_fig,'style','push',...
    'unit','normalized','position',[0.25,0.15,0.54,0.06],...
    'background','w',...
    'string','calculate');
set(h_edit4,num2str(Gain))
界面如附件所示。

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

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

期待高手赐教,谢谢。

[ 本帖最后由 向北飞 于 2009-4-19 17:20 编辑 ]
QQ截图未命名.jpg
回复
分享到:

使用道具 举报

发表于 2009-4-21 07:48 | 显示全部楼层
要把数据传递给对应的edit

评分

1

查看全部评分

 楼主| 发表于 2009-4-22 23:05 | 显示全部楼层
这个……怎么传递啊,使用set吗?
发表于 2009-4-23 08:36 | 显示全部楼层
是的     。
 楼主| 发表于 2009-4-24 12:44 | 显示全部楼层
set(h_edit4,num2str(Gain))
这个好象不对
发表于 2009-4-30 15:19 | 显示全部楼层
set(h_edit4,'string,'num2str(Gain))再看看

评分

1

查看全部评分

发表于 2009-4-30 17:50 | 显示全部楼层
用GUIDE写吧。你还没到用m语言写GUI的水平。看你写的程序乱的很,而且这些写法连debug都不好弄。如果你一定要用m语言写,就把每个callback的命令放到独立的函数文件里。然后再看看不同函数间怎么参数传递。

评分

1

查看全部评分

 楼主| 发表于 2009-5-29 12:15 | 显示全部楼层
非常谢谢大家,听取ydlcsu及生活中一些朋友的意见开始研究guide
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 19:47 , Processed in 0.072055 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表