如何从 MATLAB 中的包函数生成 MEX?

how to generate MEX from package function in MATLAB?

我的目录结构如下:

main
   +model
      run.m
   +options
      opt.m
main.m

等等。

我在 +model 目录下有一个名为 run 的函数,它依赖于 +options 目录中的某些函数,例如我在目录 [=15] 下的 main.m 脚本=] 调用 model.run() 并且函数 run 调用一些 options.opt().

我想生成 model.run() 的 MEX 文件,所以我在 MATLAB 命令提示符下 运行 coder,并在第一个屏幕上输入函数名称生成代码 model.run,编码器只显示错误:

This file is shadowed by C:\....\+model\run.m

我已经尝试将 main 目录添加到路径中,但没有成功。

MATLAB 版本:'9.4.0.813654 (R2018a)'

遗憾的是,从 MATLAB R2019a 开始,MATLAB Coder 不支持直接从包中的函数生成代码。我们已对您的请求进行了内部记录,以便我们将来考虑解除该限制。

现在的解决方法是在调用 model.run 的包外添加一个包装函数,并将其用作 Coder 的入口函数。然后,您可以将生成的 MEX 文件移动到 +model 目录,以便 model.run 在您的其余代码中调用生成的 MEX。