声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1133|回复: 4

[GUI界面] 改变输入数据后,画的图没变化是怎么回事

[复制链接]
发表于 2007-11-30 16:09 | 显示全部楼层 |阅读模式

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

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

x
我在下面的程序中实现输入第一个端口和最后一个端口的数据,通过循环计算出32个路长,再将这32路长用柱状图表示出来,但是当我改变了输入的数据后,画的图应该是随之变化的但是,却没有发生变化,请各位大大帮忙看下错在哪~~~~下面是程序内容
clear all
hedita=uicontrol('style','edit',...
     'tag','tag_a_edit',...
                  'position',[200,340,20,20] );
heditg=uicontrol('style','edit',...
                  'tag','tag_g_edit',...
                  'position',[200,360,20,20]);
m1=0;
m2=0;
m3=0;
m4=0;
m5=0;
m6=0;
  k=1
                valuea=str2num(get(hedita,'string'));
                valueg=str2num(get(heditg,'string'));
                for b=0:1
                for c=0:1
                for d=0:1
                for e=0:1
               for f=0:1
                  sum=0;
                  sum=path2(m1,valuea,b)+path2(m2,b,c)+path2(m3,c,d)+path2(m4,d,e)+path2(m5,e,f)+path2(m6,f,valueg);
                  T_path(k)=sum;
                 T_node(k,:)=[path2(m1,valuea,b) path2(m2,b,c) path2(m3,c,d) path2(m4,d,e) path2(m5,e,f) path2(m6,f,valueg)];
              
                    k=k+1;
                     end
                     end
                     end
                      end
                end
                    
            
hplot=uicontrol('style','push',...
                 'position',[300,300,30,30]);
             set(hplot,'callback',  'bar(T_path)')
%子函数:
function y=path2(m,a,b)
L_path=1;
S_path=10;
if m==0
    if a==0&b==0                        %模式0,即上路为短路径
        y=S_path;
    else y=L_path;
    end
end
if m==1
    if a==1&b==1                        %模式1,即下路为短路径
         y=S_path;
    else y=L_path;
    end
end

如果把
valuea=str2num(get(hedita,'string'));
valueg=str2num(get(heditg,'string'));
这两句放到callback里面就会出错

[ 本帖最后由 eight 于 2007-11-30 17:24 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-11-30 17:25 | 显示全部楼层
原帖由 chengzhi80 于 2007-11-30 16:09 发表
我在下面的程序中实现输入第一个端口和最后一个端口的数据,通过循环计算出32个路长,再将这32路长用柱状图表示出来,但是当我改变了输入的数据后,画的图应该是随之变化的但是,却没有发生变化,请各位大大帮忙 ...

不要让别人通过下载并运行你的程序才知道你的问题所在。建议先看看每一个置顶帖
 楼主| 发表于 2007-12-3 17:02 | 显示全部楼层
我的意思就是上面的程序中回调函数callback只有 'bar(T_path)'时,这个时候能够画出图来,但是如果我在EDIT窗口中改变valuea和valueg,再按一下PUSH这时,图象应该是变化的,但是图像没有发生变化,于是我想是不是callback中要重新获得valuea和valueg的值才行,于是将callback变成set(hplot,'callback',  'fgm1=findobj(gcf,"Tag","edit1"); valuea=str2num(get(fgm1,"string")); fgm2=findobj(gcf,"Tag","edit2"); valueg=str2num(get(fgm2,"string"));bar(T_path)')
但是会出现这样的错误”??? Error: Missing variable or function.

??? Error while evaluating uicontrol Callback.“
不知道我描述得清楚没?
我在网上搜索了帖子有人说用findobj可以解决,我的里面有findobj但是还是不行。。。
哎~~~弄了很久了,这个问题看上去很简单的,就是弄不出来。。。
发表于 2007-12-3 19:01 | 显示全部楼层
原帖由 chengzhi80 于 2007-12-3 17:02 发表
我的意思就是上面的程序中回调函数callback只有 'bar(T_path)'时,这个时候能够画出图来,但是如果我在EDIT窗口中改变valuea和valueg,再按一下PUSH这时,图象应该是变化的,但是图像没有发生变化,于是我想是不 ...

程序很多语法问题,建议先补补基础。到新手区看看相关的系列(尤其是写给学习matlab新手们这个帖子),然后看看关于GUI的精华帖
 楼主| 发表于 2007-12-3 19:29 | 显示全部楼层
语法错误。。。。。。。。。看不出来啊~
没GUI的时候程序是没问题的,加了后就不知道哪里出错了~~
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 03:32 , Processed in 0.074685 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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