在MATLAB7.0.1中对要生成独立可执行应用程序的M文件有什么要求和限制吗?
我的m文件中有子函数,m文件运行正确,可是在生成独立可执行应用程序的过程中出错了,所以想问问各位高手,在MATLAB7.0.1中对要生成独立可执行应用程序的M文件有什么要求和限制吗? 请说明错误信息 程序是:%目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹出框、列表框。
%主要内容: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 原帖由 Adasun 于 2006-12-5 15:25 发表
程序是:
%目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹出框、列表框。
%主要内容:A如何使编辑框允许输入多行指令。B在利用M函数文件创建用户界面时,如何依靠全局变量传递控件的图柄, ...
试试 set(hedit,'callback','calledit1'); 改为 set(hedit,'callback',@calledit1);
子函数calledit1的入口改为:calledit1(hObject,eventdata,handles)
页:
[1]