matlab中GUI的callback问题 急啊!

pbstart=uicontrol(gcf,'style','pushbutton','position',[5016010050],'string','1','call... pbstart=uicontrol(gcf,'style','pushbutton','position', [50 160 100 50],'string','1','callback','dd1');
这样产生了一个按钮,然后要运行dd1,这个dd1要怎么弄啊,怎么样按个按钮就运行程序呢
展开
 我来答
mayadong7349
推荐于2018-02-27 · TA获得超过2356个赞
知道大有可为答主
回答量:362
采纳率:0%
帮助的人:678万
展开全部
Callback function就是回调函数
使用uicontrol创建pushbutton并指定其“Callback”属性后,就告诉了MATLAB当我们按下该按钮时就调用这个函数(即,程序编写者告诉MATLAB按下按钮时需要调用的函数,然后当我们按下按钮时MATLAB帮助我们调用这个函数——而不需要我们自己在代码中显式调用这个函数)。
MATLAB帮助文档中提到,uicontrol的“Callback”要么指定的是一个字符串——表示一条或多条合法的MATLAB表达式,要么是一个函数的句柄(或者说函数地址,总之一个函数句柄就表示一个函数),要么是一个cellarray,其中包含了函数名/函数句柄外加你想要传递给该函数的参数。
使用代码(也可以使用GUIDE定义回调函数)指定Callback function的方法具体参考:
(在MATLAB命令窗口中输入doc命令,打开文档窗口,在左侧Contents中选择以下项)
MATLAB/User's Guide/Creating Graphical User Interface/Create GUIs Programmatically/Write Code for Callbacks/Specify Callbacks in Function Calls
在你的代码中,dd1是一个自定义函数,所以你应该这样定义:
定义一个函数文件dd1.m,例如:
function dd1
msgbox('MATLAB calls dd1.');
end
放置到MATLAB的当前目录下。例如,如果你的GUI代码放在D:\MyWorks\MATLAB\GUI里,那么就把dd1也放在该目录下。如果你的代码是直接在命令行中敲的,你可以执行以下cd命令看一下MATLAB的当前目录,然后把dd1.m放到该目录下即可。
如果dd1包含参数,你可以这样定义:
function dd1(say_what)
msgbox(say_what);
end
你的代码:
pbstart = uicontrol(gcf, 'style', 'pushbutton', 'position', [50 160 100 50],'string','1','callback','dd1 ''Hello, world!''; dd1 Greate!');
如果你想把UI代码和dd1的定义放在同一个文件中:
function main
pbstart = uicontrol(gcf, 'style', 'pushbutton', 'position', [50 160 100 50],'string','1','callback','dd1 ''Hello, world!''; dd1 Greate!');

function dd1(say_what)
msgbox(say_what);
end
end
至于传递函数句柄或者传递一个包含函数句柄和函数参数的元组,这两种方法就不多说了。毕竟MATLAB帮助文档中讲的要比我讲的详细的多,也专业的多(而且,我还很可能出错,如果这样的话,请以MATLAB offcial manual为准)。
百度网友65f4a86
2013-05-12 · TA获得超过486个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:109万
展开全部
其实,对于初学者而言,你完全可以使用matlab guide创建gui界面,而不必写这么多的代码!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式