从命令行调用本地函数

时间:2013-03-17 13:18:30

标签: matlab scope function-pointers

我在m文件中定义了local function。例如:

% 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线?

1 个答案:

答案 0 :(得分:5)

The official documentation说:

  

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

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

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

执行此操作
help public_function>local_function