chengzhi80 发表于 2007-11-30 16:09

改变输入数据后,画的图没变化是怎么回事

我在下面的程序中实现输入第一个端口和最后一个端口的数据,通过循环计算出32个路长,再将这32路长用柱状图表示出来,但是当我改变了输入的数据后,画的图应该是随之变化的但是,却没有发生变化,请各位大大帮忙看下错在哪~~~~下面是程序内容
clear all
hedita=uicontrol('style','edit',...
   'tag','tag_a_edit',...
                  'position', );
heditg=uicontrol('style','edit',...
                  'tag','tag_g_edit',...
                  'position',);
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,:)=;
            
                  k=k+1;
                     end
                     end
                     end
                      end
                end
                  
            
hplot=uicontrol('style','push',...
               'position',);
             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 编辑 ]

eight 发表于 2007-11-30 17:25

原帖由 chengzhi80 于 2007-11-30 16:09 发表 http://www.chinavib.com/forum/images/common/back.gif
我在下面的程序中实现输入第一个端口和最后一个端口的数据,通过循环计算出32个路长,再将这32路长用柱状图表示出来,但是当我改变了输入的数据后,画的图应该是随之变化的但是,却没有发生变化,请各位大大帮忙 ...
不要让别人通过下载并运行你的程序才知道你的问题所在。建议先看看每一个置顶帖

chengzhi80 发表于 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但是还是不行。。。
哎~~~弄了很久了,这个问题看上去很简单的,就是弄不出来。。。

eight 发表于 2007-12-3 19:01

原帖由 chengzhi80 于 2007-12-3 17:02 发表 http://www.chinavib.com/forum/images/common/back.gif
我的意思就是上面的程序中回调函数callback只有 'bar(T_path)'时,这个时候能够画出图来,但是如果我在EDIT窗口中改变valuea和valueg,再按一下PUSH这时,图象应该是变化的,但是图像没有发生变化,于是我想是不 ...
程序很多语法问题,建议先补补基础。到新手区看看相关的系列(尤其是写给学习matlab新手们这个帖子),然后看看关于GUI的精华帖

chengzhi80 发表于 2007-12-3 19:29

语法错误。。。。。。。。。看不出来啊~
没GUI的时候程序是没问题的,加了后就不知道哪里出错了~~
页: [1]
查看完整版本: 改变输入数据后,画的图没变化是怎么回事