是否可以从函数内部编写GUI?
问题是所有GUI函数的回调都在全局工作空间中进行评估.但是函数具有自己的工作空间,无法访问全局工作空间中的变量.是否可以使GUI函数使用函数的工作空间?例如:
function myvar = myfunc()
myvar = true;
h_fig = figure;
% create a useless button
uicontrol( h_fig, 'style', 'pushbutton', ...
'string', 'clickme', ...
'callback', 'myvar = false' );
% wait for the button to be pressed
while myvar
pause( 0.2 );
end
close( h_fig );
disp( 'this will never be displayed' );
end
Run Code Online (Sandbox Code Playgroud)
此事件循环将无限期运行,因为回调不会myvar在函数中修改.相反,它将myvar在全局工作区中创建一个新的.
我想定义一个这样的函数:
function f = f1(fun,a,b,c)
f = c*fun(a+b);
Run Code Online (Sandbox Code Playgroud)
这fun是我在使用函数时会传递的一些函数f.我怎样才能在Matlab中做到这一点?