gpt4 book ai didi

matlab - 从函数句柄获取绝对文件路径

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:21 30 4
gpt4 key购买 nike

是否有可能检索包含由函数句柄表示的函数的文件的绝对路径?例如:

%child folder containing test_fun.m file
handle = @test_fun
cd ..

%root folder - test_fun not available
path = GETPATHFROMHANDLE(handle)

在 MATLAB 中是否有等同于 GETPATHFROMHANDLE 的函数?似乎功能简单,但我无法解决。我知道 func2strwhich 函数,但在那种情况下不起作用。

最佳答案

函数句柄(即 class 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 的输出是一个 struct,这可以通过 getfield 的单个命令完成。 :

>> fName = getfield(functions(h),'file')
fName =
C:\Program Files\MATLAB\R2013b\toolbox\matlab\specgraph\bar.m

但是,您可以使用 func2strwhich如果将它们串在一起,则获取文件名:

>> h = @bar;
>> fName = which(func2str(h))
fName =
C:\Program Files\MATLAB\R2013b\toolbox\matlab\specgraph\bar.m

关于matlab - 从函数句柄获取绝对文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623995/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com