假设我有:
+MyPackage/+MySubPackage2/some_function.m
当执行时,如何从这个
'MyPackage.MySubPackage2.some_function'
中生成字符串some_function.m
?mfilename()
、dbstack()
、what()
等。都只需给出'some_function'
meta.package.fromName
需要我们要查找的字符串作为其输入分析完整路径(
mfilename('fullpath')
)或meta.package.getAllPackages()
等似乎是唯一的方法。。。似乎在a
mfilename('class')
中调用aclass
给出了正确的答案,但是对于普通函数没有等价的方法。。。……还是在那里感觉好像我错过了一些明显的。。。
最佳答案
如果可以导入包含的包(例如p1/p2),则:
function outputArg1 = some_function()
import p1.p2.*
t = @some_function;
func2str(t)
%ans = 'p1.p2.some_function'
outputArg1 = ...;
end
也可以使用this answer中的方法(可能会进行一些更改)来自动化导入过程。