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要怎么弄啊,怎么样按个按钮就运行程序呢 展开
这样产生了一个按钮,然后要运行dd1,这个dd1要怎么弄啊,怎么样按个按钮就运行程序呢 展开
展开全部
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为准)。
使用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为准)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询