接口Matlab与c++项目

5视图(30天)
你好,
我是一名学生 电脑ingeneering 。我有一个模拟电力系统 在matlab编写 和一个控制器 在c++编码 。( 智能电网系统 )。我需要一个控制器的方法 沟通 用matlab模拟environnement)。
我有三个方法可以这样做:
  1. 使用Matlab编译器创建一个DLL / c++共享库。
  2. 使用Matlab编码器的Matlab代码转化为c++代码。
  3. 利用Matlab引擎Matlab和C + +程序相互通信。
但是我有一些问题:
  • 关于(1)。matlab编译器编译matlab面向对象的项目吗?
  • (2)。matlab编码器将面向对象的matlab项目吗?
  • 对(3)。是否可以访问所有信息在matlab c++代码(即与matlab引擎)?
  • matlab编译器的局限性和matlab编码器是什么?

接受的答案

雅各Halbrooks
雅各Halbrooks 2014年2月26日
编辑:雅各Halbrooks 2014年2月26日
这里有一些更多的方法来考虑接口MATLAB c++:
  • mex files为你的c++代码创建可以直接调用MATLAB的函数
  • 编写C包装你的c++代码与MATLAB的使用LOADLIBRARY加载库在MATLAB和使其功能可以使用CALLIB
一些方法的局限性:
  • MATLAB编译器可以部署最MATLAB代码包括MATLAB类。然而,它不接受一个类作为一个顶级包装。为您的共享库,你需要编写函数实例化类和调用方法,然后你包这些函数库。
  • MATLAB编码器实际翻译MATLAB代码C / c++(与MATLAB编译器包和加密)和更严格的语言限制。MATLAB编码器允许MATLAB类但是不允许其他构造,你是使用细胞阵列和try / catch等。看到在这里支持和有万博1manbetx限的功能。
  • MATLAB引擎通过MATLAB作为自己的后台进程运行工作,以及C接口允许您执行任意命令和访问工作区
来指导你的选择,我建议以下问题:
  • 是喜欢用MATLAB或一个c++程序的司机吗?(如果MATLAB,我建议使用墨西哥人)
  • 如果您使用的是一个c++程序驱动程序,你可以访问在机器上安装MATLAB将运行在哪里?(如果你有访问,我建议MATLAB引擎)

答案(1)

Gueniat帕特里斯
Gueniat帕特里斯 2014年2月27日
你好,
谢谢你的快速和精确的答案!是的,我应该是更精确的与我的问题。c++程序是司机的核心项目。只Matlab模拟了environnement)。
所以我认为我将使用MATLAB引擎。由于matlab prety很大一部分,编码由其他人同行,所以我们不想碰。如果把它使用编码器或编译器意味着修改,这不是最好的解决方案。
但我需要更多关于Matlab引擎的精度可以肯定的是:
  • Matlab引擎是一个C库(不是c++) ?
  • 有可能从C代码启动脚本和Matlab项目(使用引擎)?
  • 可以存储在matlab中的C代码acc信息吗?还是沟通?
精度:Matlab代码environnement),应该修改的C代码(输入)。当environnemnt修改和转换,C代码应该得到这个新国家(输出)。
1评论
雅各Halbrooks
雅各Halbrooks 2014年2月27日
编辑:雅各Halbrooks 2014年2月27日
您可以使用MATLAB引擎从c++和 运行脚本和项目 以及 把数据 获取数据 从MATLAB /。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!