在不使用 eval/feval 的情况下动态寻址 MATLAB 模块

Dynamically addressing MATLAB modules without using eval/feval

考虑具有此文件结构的代码库:

myScript.m (Script)
+modA/ 
    fn.m (Function)
+modB/ 
    fn.m (Function)

myScript.m 必须使用字符串 str_moduleName.

的结果选择在运行时调用 modA.fnmodB.fn 中的哪一个

有没有办法避免调用 feval([str_moduleName,'.fn'])

我没试过这个,但我想你可以构建一个带有函数句柄的结构:

S.modA = @modA.fn
S.modB = @modB.fn

然后您可以使用 str_moduleName 的值调用该函数,如下所示:

S.(str_moduleName)()