函数句柄(即类function_handle
的对象)有一个名为 的方法functions
,它将返回有关句柄的信息,包括相关文件的完整路径:
>> fs = functions(h)
fs =
function: 'bar'
type: 'simple'
file: 'C:\Program Files\MATLAB\R2013b\toolbox\matlab\specgraph\bar.m'
>> fs.file
ans =
C:\Program Files\MATLAB\R2013b\toolbox\matlab\specgraph\bar.m
由于 的输出functions
是 a struct
,这可以在一个命令中完成getfield
:
>> fName = getfield(functions(h),'file')
fName =
C:\Program Files\MATLAB\R2013b\toolbox\matlab\specgraph\bar.m
但是,如果将它们串在一起,则可以使用func2str
and来获取文件名:which
>> h = @bar;
>> fName = which(func2str(h))
fName =
C:\Program Files\MATLAB\R2013b\toolbox\matlab\specgraph\bar.m