环境:
Matlab R2012a(必要时我可以访问其他人)
已安装所有工具箱/编译器
Ubuntu 12.04 64位和/或Windows 7 64位
我正在使用Matlab编写的软件包的源代码(不幸的是它的专有,所以没有代码示例......抱歉),并且一个功能简要地使用了控制系统工具箱和信号处理工具箱 .
我在个人计算机上运行代码没有问题,因为我已经安装了所有工具箱,但是我想编译(mex或mcc)只使用这两个工具箱的函数 . 当然,目标是在没有这些工具箱的机器上运行软件,同时保持其余代码的更改 .
问题在于,mcc不再允许使用 -x 选项进行编译来创建函数的mex-ed版本,因此我不得不创建一个C可执行文件(可能?希望不是) . 此特定函数将大矩阵作为参数(作为命令行参数写入不切实际)并返回单元数组的结构 .
解决这个问题的唯一方法(我现在看到)将是在二进制.mat文件中将参数(大矩阵)写入硬盘驱动器,在参数中读取已编译的C二进制文件,运行算法,最后保存另一个.mat中的返回值,用于父线程加载回内存 .
这似乎完全不切实际 . 我非常感谢其他建议 . 如果有任何疑问,请告诉我 . 提前致谢!
[Edit 1] codegen包不支持tf.m . 看起来这应该是可能的(并且可以使用 mex -x 选项),但我很茫然 . 任何建议将不胜感激!