从命令行调用本地函数

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的命令行?

Eit*_*n T 5

官方文件说:

...您不能从命令行或其他文件中的函数调用本地函数。

据此,您必须将其句柄传递给调用方,以允许在其m文件之外间接调用它。我相信,没有其他文献记载的访问本地功能的明智方法。

奇怪的是,您仍然可以使用help

help public_function>local_function
Run Code Online (Sandbox Code Playgroud)