声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1557|回复: 3

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

[复制链接]
发表于 2006-12-4 17:31 | 显示全部楼层 |阅读模式

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

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

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

使用道具 举报

发表于 2006-12-5 11:03 | 显示全部楼层
请说明错误信息
 楼主| 发表于 2006-12-5 15:25 | 显示全部楼层
程序是:
%目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹出框、列表框。
%主要内容:A如何使编辑框允许输入多行指令。B在利用M函数文件创建用户界面时,如何依靠全局变量传递控件的图柄,保证回调动作正确执行。
function exm104_3()
global hedit hpop hlist
clf reset
set(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗的大小
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',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置
uicontrol(gcf,'style','text',...%制作静态文本框
    'position',[0.52,0.87,0.26,0.1],...
    'string','绘图指令输入框');
hedit=uicontrol(gcf,'style','edit',...%制作可编辑文本框
    'position',[0.52,0.05,0.26,0.8],...
    'max',2);%取2,使Max-Min>1,而允许多行输入
hpop=uicontrol(gcf,'style','popup',...%制作弹出菜单
    'position',[0.8,0.73,0.18,0.12],...
    'string','spring|summer|autumn|winter');%设置弹出框中选项名
hlist=uicontrol(gcf,'style','list',...%制作列表框
    'position',[0.8,0.23,0.18,0.37],...
    'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名
    'Max',2);%取2,使Max-Min>1,而允许多项选择
hpush=uicontrol(gcf,'style','push',...%制作与列表框配用的按键
    'position',[0.8,0.05,0.18,0.15],'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
发表于 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)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-12 14:45 , Processed in 0.098492 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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