我在matlab中有两个函数,大致是这样的
function f1()
setup_callback(@f2);
a = 1;
evaluate_callback();
end
function f2()
...
end
其中 evaluate_callback 是调用 f2 的外部库函数。
我希望能够从 f2 内部读取 a 的当前值。有没有办法在不使用全局变量的情况下实现这一点?
我在matlab中有两个函数,大致是这样的
function f1()
setup_callback(@f2);
a = 1;
evaluate_callback();
end
function f2()
...
end
其中 evaluate_callback 是调用 f2 的外部库函数。
我希望能够从 f2 内部读取 a 的当前值。有没有办法在不使用全局变量的情况下实现这一点?
在里面做f2
一个嵌套函数f1
:
function f1()
setup_callback(@f2);
a = 1;
evaluate_callback();
function f2()
%# you can access a here
disp(a)
end
end
嵌套函数将提供您想要的范围。请注意,除了从 f1 内部或通过函数句柄之外,没有其他方法可以调用 f2 回调函数。所以 f1 可以返回@f2
句柄,全局范围内的其他函数可以这样调用它。
function f1()
setup_callback(@f2);
a = 1;
evaluate_callback();
function f2()
% refer to a
...
end
end