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

时间:2019-03-16 21:57:15

标签: matlab mex matlab-coder

我具有以下目录结构:

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

等等。

我在+model目录下有一个名为run的函数,该函数取决于+options目录中的某些函数,因此我的main.m脚本在目录main下调用model.run(),函数run调用某些options.opt()

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

  

此文件被C:\ .... \ + model \ run.m遮盖

我已经尝试过将model.run目录添加到路径中,但是没有用。

  • 在这种情况下是否可以为main编译MEX?

MATLAB版本:“ 9.4.0.813654(R2018a)”

1 个答案:

答案 0 :(得分:1)

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

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