Adasun 发表于 2006-12-4 17:31

在MATLAB7.0.1中对要生成独立可执行应用程序的M文件有什么要求和限制吗?

我的m文件中有子函数,m文件运行正确,可是在生成独立可执行应用程序的过程中出错了,所以想问问各位高手,在MATLAB7.0.1中对要生成独立可执行应用程序的M文件有什么要求和限制吗?

happy 发表于 2006-12-5 11:03

请说明错误信息

Adasun 发表于 2006-12-5 15:25

程序是:
%目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹出框、列表框。
%主要内容:A如何使编辑框允许输入多行指令。B在利用M函数文件创建用户界面时,如何依靠全局变量传递控件的图柄,保证回调动作正确执行。
function exm104_3()
global hedit hpop hlist
clf reset
set(gcf,'unit','normalized','position',);%设置图形窗的大小
set(gcf,'defaultuicontrolunits','normalized');
set(gcf,'defaultuicontrolfontsize',11)
set(gcf,'defaultuicontrolfontname','隶书');
set(gcf,'defaultuicontrolhorizontal','left');
set(gcf,'menubar','none');%删除图形窗工具条
str='通过多行指令绘图的交互界面';
set(gcf,'name',str,'numbertitle','off');%书写图形窗名
h_axes=axes('position',,'visible','off');%定义轴位框位置
uicontrol(gcf,'style','text',...%制作静态文本框
    'position',,...
    'string','绘图指令输入框');
hedit=uicontrol(gcf,'style','edit',...%制作可编辑文本框
    'position',,...
    'max',2);%取2,使Max-Min>1,而允许多行输入
hpop=uicontrol(gcf,'style','popup',...%制作弹出菜单
    'position',,...
    'string','spring|summer|autumn|winter');%设置弹出框中选项名
hlist=uicontrol(gcf,'style','list',...%制作列表框
    'position',,...
    'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名
    'Max',2);%取2,使Max-Min>1,而允许多项选择
hpush=uicontrol(gcf,'style','push',...%制作与列表框配用的按键
    'position',,'string','Apply');
set(hedit,'callback','calledit1');%编辑框输入引起回调
set(hpop,'callback','calledit1');%弹出框选择引起回调
set(hpush,'callback','calledit1');%按键引起回调

%子函数
function calledit1()
global hedit hpop hlist
ct=get(hedit,'string');%获得输入的字符串函数
vpop=get(hpop,'value');%获得选项的位置标识
vlist=get(hlist,'value');%获得选项位置向量
if ~isempty(ct)%可编辑框输入非空时
    eval(ct')%运行从编辑文本框送入的指令
    popstr={'spring','summer','autumn','winter'};%弹出框色图矩阵
    liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容
    invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令
    colormap(eval(popstr{vpop}));%采用弹出框所选色图
    w=zeros(1,4);w(vlist)=1;
    for k=1:4
      if w(k)%按列表选项影响图形
            eval(liststr{k});
      else
            eval(invstr{k});
      end
    end
end
写在一个m文件中。

在运行生成的exe时,它说:undefined function or variable 'calledit1'.
error while evaluating uicontrol callback

eight 发表于 2006-12-5 15:32

原帖由 Adasun 于 2006-12-5 15:25 发表
程序是:
%目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹出框、列表框。
%主要内容:A如何使编辑框允许输入多行指令。B在利用M函数文件创建用户界面时,如何依靠全局变量传递控件的图柄, ...

试试 set(hedit,'callback','calledit1'); 改为 set(hedit,'callback',@calledit1);

子函数calledit1的入口改为:calledit1(hObject,eventdata,handles)
页: [1]
查看完整版本: 在MATLAB7.0.1中对要生成独立可执行应用程序的M文件有什么要求和限制吗?