cornerlimi 发表于 2006-4-10 17:11

[求助]急问,如何取得输入的数字

在菜单的Callback中输入:a(1)=uicontrol('Style','edit','Position',);<BR>                                          p(1)=uicontrol('Style','pushbutton','string','OK','Position'<BR>                                                                  ,'Callback','aaa1');<BR>然后新建一个m文件,如下:<BR>function aaa1()<BR>Kc=get(a(1),'string');<BR>.......<BR><BR>但是运行时程序说:<BR>???Undefined function or variable 'a'<BR><BR>Error in ==&gt; F:#MATLAB6p5\work\aaa1.m<BR>On line 2 ==&gt; Kc=get(a(1),'string');<BR><BR>???Error while evaluating uicontrol Callback<BR><BR>我该怎么办,尝试了许多办法都不行<BR>后来我用了:<BR>function aaa1()<BR>qw1=findobj(gcbf,'tag','a(1)');<BR>Kc=get(qw1,'string');<BR>.......<BR><BR>这回没有报错,但我也不知道Kc是不是拿到了我输入的数字,不知道有什么办法可以观察Kc<BR>不过运行的结果并不对,似乎取值一直为0的样子<BR><BR><BR>请问我该怎么处理才正确<BR>

cool-zn 发表于 2006-4-11 07:55

<P>function aaa1()<BR>Kc=get(a(1),'string');<BR>句柄a(1)是不能够被其它函数真接利用的,如果要利用,就要运用findobj函数,当然也有其它方法<BR><BR>function aaa1()<BR>qw1=findobj(gcbf,'tag','a(1)');<BR>Kc=get(qw1,'string');<BR><BR>错误地方有两:<BR>gcbf应改成gcf,表示当前的地图上<BR>还有你错误地运用了findobj函数,qw1=findobj(gcbf,'tag','a(1)')它表示在当前地图下,找出属性tag为a(1)的句柄赋给qw1,你在a(1)=uicontrol('Style','edit','Position',);都没设置tag属性又怎么能找能到句柄a(1)<BR>解决方法:a(1)=uicontrol('Style','edit','Position',,'tag','XX');设置tag属性<BR>         qw1=findobj(gcf,'tag','XX'),这样就能获得句柄a(1)并赋给qw1<BR><BR>想看到Kc的输出,在aaa1最后加上Kc,不要分号,要不然就不能在命令窗口看到输出了,当然也可能把Kc=get(qw1,'string');后面的分号去掉,两者道理都是一样的</P>
页: [1]
查看完整版本: [求助]急问,如何取得输入的数字