我有一个下面包含的补丁,我想在补丁中添加一个额外的ButtonDownFcn。当我选择第二个选项时,代码不起作用,我得到了许多输出参数。
原始补丁
for i = 1:10
counter = counter+1;
hpatch(counter) = patch([x(17) x(18) x(1) x(1)],[y(17) y(18) y(1) y(1)],[0 0 0 0],...
'Parent',hAx,'ButtonDownFcn', ['winopen(''' file(counter) ''');']));
end
新的所需补丁
for i = 1:10
counter = counter+1;
hpatch(counter) = patch([x(17) x(18) x(1) x(1)],[y(17) y(18) y(1) y(1)],[0 0 0 0],...
'Parent',hAx,'ButtonDownFcn', ['winopen(''' file(counter) ''');'],...
'ButtonDownFcn', @saveClickData(counter));
end
这是的功能
saveClickData(counter)
应该是这样吗?:
saveClickData(source,event)
尝试:
patch(X,Y,Z, 'ButtonDownFcn',{@saveClickData, counter})
然后将回调函数定义为:
function saveClickData(src,evt,counter)
winopen( file(counter) );
%# do additional stuff..
end
请确保将此函数定义为嵌套函数,以便它可以访问包括file
变量在内的父函数工作区。