8

我在 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

现在,我想local_function从命令行(而不是从public_function)调用。我能够使用从以下返回的函数句柄来做到这一点public_function

>> fh = public_function(); % got handle to local_function
>> y = fh( x ); % calling the local function from command line :-)

我的问题:
有没有其他方法(除了显式传递函数句柄)从命令行(或其他 m 文件/函数)调用本地函数?

更准确地说,我想要一种方法来访问文件中的任何本地函数(前提是我知道它的名称)。所以,如果我有public_function.m文件(和函数)并且我知道local_function是该文件的本地文件,有没有办法local_function从命令行访问?

4

1 回答 1

5

官方文档说:

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

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

奇怪的是,你仍然可以这样做help

help public_function>local_function
于 2013-03-17T16:10:48.360 回答