Sha*_*hai 8 matlab scope function-pointers
我有一个m文件中定义的本地函数.例如:
% begining of public_function.m file
function fh = public_function( )
%
% do some computation...
fh = @local_function; % return function handle to local function defined below
function y = local_function( x )
%
% a local function inside public_function.m file
%
% some manipulation on x
y = x;
% end of public_function.m file NOTE THAT local_function is NOT nested
Run Code Online (Sandbox Code Playgroud)
现在,我想local_function从命令行调用(而不是从命令行调用public_function).我能够使用从public_function以下位置返回的函数句柄来执行此操作:
>> fh = public_function(); % got handle to local_function
>> y = fh( x ); % calling the local function from command line :-)
Run Code Online (Sandbox Code Playgroud)
我的问题:
有没有其他方法(除了明确传递函数句柄)从命令行(或其他m文件/函数)调用本地函数?
更准确地说,我想要一种方法来访问文件中的任何本地函数(假设我知道它的名字).所以,如果我有public_function.m文件(及功能),我知道这local_function是局部的文件,有没有访问方式local_function的命令行?
官方文件说:
...您不能从命令行或其他文件中的函数调用本地函数。
据此,您必须将其句柄传递给调用方,以允许在其m文件之外间接调用它。我相信,没有其他文献记载的访问本地功能的明智方法。
奇怪的是,您仍然可以使用help:
help public_function>local_function
Run Code Online (Sandbox Code Playgroud)