![](/img/trans.png)
[英]Call a python function that takes in a MATLAB function handle as argument from matlab
[英]Matlab call a function from a function
我有两个功能:
function [] = func_one()
S.pb = uicontrol('style','push','unit','pix','posit',[20 20 260 30],
'string','Print Choices','callback',{@func_two,S});
我有第二个功能:
function [a] = func_two(varargin)
a = 'alon';
end
我想func_one
返回变量a
的func_two
。 我该怎么办?
我试过了:
function [a] = func_one()
但是我想我必须对'callback'做些操作,{@ func_two,S})
谢谢你们!
如您所说,如果您希望func_one
返回func_one
中的值a
, func_two
使用回调的最简单方法是:
function [a] = func_one()
S.pb = uicontrol('style','push','unit','pix','posit',[20 20 260 30],
'string','Print Choices');
a = func_two()
上面将允许您说运行a=func_one
而a
将是字符串'alon'
。
如果您确实确实希望func_two()
是按钮的回调,并且希望在func_one
(调用func_two
的函数)的工作区中分配a='alon'
, func_two
其放入func_two
assignin('caller','a',a)
而且,如果两者都不是您想要的,那么也许可以指明为什么要func_one
返回func_two
返回的内容-例如您希望与GUI进行的确切交互以及它与实际体验有何不同。
如果您以编程方式设计GUI,建议您使用嵌套函数来共享数据 。 例:
function IncrementExample()
x = 0;
uicontrol('Style','pushbutton', 'String','(0)', ...
'Callback',@callback);
function callback(o,e)
%# you can access the variable x in here
x = x + 1;
%# update button text
set(o, 'String',sprintf('(%d)',x))
drawnow
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.