我在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
线?
答案 0 :(得分:5)
...您无法从命令行或其他文件中的函数调用本地函数。
根据这一点,您必须将其句柄传递给调用者,以便允许在其m文件之外间接调用它。我相信没有记录在案的合理方式来访问本地功能。
奇怪的是,您仍然可以使用help
:
help public_function>local_function