matlab自定义回调函数语法规则
(2010-05-08 17:24:12)
标签:
回调函数matlab语法规则句柄it |
分类: Matlab |
在进行GUI编程时,是不是经常遇到需要自己定义针对某一对象的回调函数的问题?
首先用set设置回调函数的名称和输入参数,然后定义回调函数,实现想要的功能。
matlab针对回调函数的定义有如下语法规则需要遵守:
如何设置回调函数 |
如何定义回调函数 |
set(h, 'StartFcn', 'myfile') |
function myfile |
set(h, 'StartFcn', @myfile) |
function myfile(obj, event) |
set(h, 'StartFcn', {'myfile', var1, var2, ...}) |
function myfile(obj, event, arg1, arg2, ...) |
set(h, 'StartFcn', {@myfile, var1, var2, ...}) |
function myfile(obj, event, arg1, arg2, ...) |
1、第一种情况:不需要向回调函数传递任何参数。
2、第二种情况:向回调函数传入调用回调函数的对象的句柄以及event(matlab留待以后使用)的值。
3、第三、四种情况:向回调函数传入调用回调函数的对象的句柄以及用户想要传递的参数(多个)。
因此,在设置和定义对象的回调函数时,要遵循以上的对应规则。
另外,回调函数如果很长就单独写在外面,如果少的话就可以直接写在后面,比如:
f
=figure('position',[400,400,600,400],'toolbar','none','menubar','none');
btn =
uicontrol('parent',f,'position',[20,20,50,20],...
'callback','t = 1:0.1:20;y =
sin(t);plot(t,y);');
写法跟M文件差不多,只是多了引号而已,但要注意,如果语句本身带引号,就要写两个单引号,如'delete(findobj(0,''Type'',''axes''))'
http://www.ilovematlab.cn/viewthread.php?tid=13590&highlight=%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0