看来,几种方法可以调用matlab在C++并呼吁C++在matlab。虽然我试图在这里一一列举,请它指出如果我错过的东西。

叫C++在matlab中,还有两个方法。第一个是叫功能中的C公共图书馆。第二个是建立C++为二进制代码MEX-文件,这些文件将被称为从MATLAB命令行。对于第一种方法,是的C公共图书馆都是一般性的,即没有改变到他们的C码matlab和编写从一般C编译器喜欢的海湾合作委员会?

叫matlab中的代码C++,有两种方法可用。第一个是Matlab引擎。第二个是利用MATLAB编译器管理协委会创建C或C++的共享图书馆从你MATLAB代码。

除了matlab和C++可以通过写作和阅读的数据和从一些文件(例如垫文件,文本的文件)。

具有超过一种方式来实现每一个目标在这里,你能告诉我什么情况下最好使用哪些人?即叫功能中的C公共图书馆VS C楼C++为二进制代码MEX-文件,Matlab引擎VS编制Matlab代码转C++的共用图书馆。

感谢和问候!

有帮助吗?

解决方案

我仅有的指尖叫C或C++职能从MATLAB。它看起来我喜欢的唯一区别之间调用功能的共用图书馆和调职能从墨西哥的文件是用一个共用图书馆,你有电话的功能与'calllib',这是一个命令行类型功能和墨西哥的功能允许你打电话的功能,因为如果他们是建立在功能,这样的接口是一个小小的更清洁。

我的建议是利用墨西哥的文件,如果

  • 你是用C++(可能必须编写一个包装使用C++在一个共用图书馆)
  • 你是利用MATLAB如胶水的大量的优化C或C++的程序。你要是能给他们打电话干净。

使用共用图书馆如果

  • 你已经有一个现有的C库,可以使用,而无需修改。
  • 你只需要少量的电话C功能。

真的,这可以归结为的接口。我个人喜欢墨西哥文件的路线,因为它提供了干净的接口,从MATLAB你C或C++的功能。你可以叫它,像只是另一个功能与标准的MATLAB类型。用一个共用图书馆,你可能需要做一些数据格式化之前,呼吁图书馆的功能

其他提示

我想你已经命名的方法是正确的(它已经有一段时间,因为我已经使用过)

这个matlab C编译器是不是真的特别;它可以使用不同的编译器。见支持的编译器的链接名单。这还不包括GCC,但包括MS Visual Studio中。与所提供的库链接时,你会碰到的问题。

基本上是:从C调用Matlab是什么,如果你需要一个紧密的接口,你会怎么做;例如,如果要同步的2个工具,或者你的S-功能(SIMULINK)需要额外的信息。不过,这样的一个文件被propably用Matlab被叫/ Simulink中在第一位置。

调用从MATLAB c是你想,如果你编写自己的S-功能或扩展matlab做什么。

C和C ++之间的选择是你;如果你从一张白纸,我建议你开始用C ++;你并不需要使用完整的功能,但它可以让更多的自由。还更库往往是可用于C ++时下。

C是选择的,如果你需要迁移到非常不同的环境中的语言;即编译C到DSP进行实例。或者,如果你已经得到了用C的遗留代码,从启动。混合C和C ++是可能的,但可以是有点麻烦;我敢肯定,你会发现在计算器上的主题单单这个问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top