我在C++中有一个很长的代码,我想从MATLAB调用它。
我读到,使用MEX-文件,从MATLAB调用大型的预先存在的C/C++和Fortran例程,而不重写它们,因为MATLAB函数是可能的。
但是,MEX文件很麻烦,显然应该修改整个代码。此外,我在从MATLAB的命令行调用C/C++编译器时遇到了问题。特别是,MATLAB要求
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2013a\sys\lcc
[2] Microsoft Visual C++ 2010 in D:\Program Files\Microsoft Visual Studio 10.0但是我的代码是用Borland c++编写的,但是MATLAB不能识别Borland是一个编译器。
有什么方法,比我现在做的更简单,通过MEX-文件在MATLAB中集成C/C++代码吗?
发布于 2013-08-08 11:05:41
从这里中可以看出,Matlab可以与C或Fortran进行接口;现在如何从C++到C呢?你使用extern "C"。
阅读这里以获得关于这个主题的快速介绍,但基本上这是您要做的全部工作,设置一个extern来为您的C++函数公开C接口,这样链接器和编译器都知道如何正确构建C接口。
FAQ还讨论了该解决方案的一些限制,因为C++和C提供了不同的特性。
发布于 2013-08-08 11:52:44
作为使用MEX文件创建真正的matlab接口的替代方法,您也可以通过C++调用系统调用程序。您必须先将它所需的数据写入文件,这是效率低下的,但如果您不打算经常使用它,则可能比编写真正的接口更好。
https://stackoverflow.com/questions/18123562
复制相似问题