首页 文章

Mex或Compile(mcc)使用工具包的Matlab函数

提问于
浏览
2

环境:

  • Matlab R2012a(必要时我可以访问其他人)

  • 已安装所有工具箱/编译器

  • Ubuntu 12.04 64位和/或Windows 7 64位

我正在使用Matlab编写的软件包的源代码(不幸的是它的专有,所以没有代码示例......抱歉),并且一个功能简要地使用了控制系统工具箱和信号处理工具箱 .

我在个人计算机上运行代码没有问题,因为我已经安装了所有工具箱,但是我想编译(mex或mcc)只使用这两个工具箱的函数 . 当然,目标是在没有这些工具箱的机器上运行软件,同时保持其余代码的更改 .

根据matlab,他们编译几乎使用任何工具箱的代码都没有问题 . 以下是支持mcc编译的工具箱列表:http://www.mathworks.com/products/compiler/supported/compiler_support.html

问题在于,mcc不再允许使用 -x 选项进行编译来创建函数的mex-ed版本,因此我不得不创建一个C可执行文件(可能?希望不是) . 此特定函数将大矩阵作为参数(作为命令行参数写入不切实际)并返回单元数组的结构 .

解决这个问题的唯一方法(我现在看到)将是在二进制.mat文件中将参数(大矩阵)写入硬盘驱动器,在参数中读取已编译的C二进制文件,运行算法,最后保存另一个.mat中的返回值,用于父线程加载回内存 .

这似乎完全不切实际 . 我非常感谢其他建议 . 如果有任何疑问,请告诉我 . 提前致谢!

[Edit 1] codegen包不支持tf.m . 看起来这应该是可能的(并且可以使用 mex -x 选项),但我很茫然 . 任何建议将不胜感激!

1 回答

相关问题