2013-02-15 124 views
1

我有一个带已知接口的Matlab mex文件,这个mex文件是由其他人提供的,所以我无法访问代码。有没有什么有效的方法来调用C++中的mex函数?谢谢!在C++中调用matlab mex文件

回答

0
  1. mexext从MATLAB调用告诉你允许兼容的系统。 (32位或64位)

  2. mex编译的可执行文件不能从C++环境中调用AFAIK。他们使用Matlab命令窗口/ Matlab函数。

例:

系统( “mymex”)会给我的错误是:

'mymex' is not recognized as an internal or external command, 
operable program or batch file. 

系统( “ttt.mexw32”);

will popup a window asking me to select a program to open that file with. 

我也有我自己的怀疑,在一个系统上编译.mexw32/.mexw64的可以在其他工作如扩展名为.exe的(可执行文件)。原因可能是不兼容的Matlab发布版本等(不知道太多,请检查一下)

虽然你可以很容易地使用他们的mex可执行文件。

0

您是否考虑过使用mexCallMatlab
您可以将mex文件作为标准的matlab函数,并使用mexCallMatlab从C++中调用它。

0

mex文件只是动态库。您可以使用LoadLibrary加载它们并使用GetProcAddress调用它们的功能。 (或等效于* nix,dlopendlsym)。

设置参数以与MatLab通过的参数相兼容会有点痛苦,但不是特别困难。如果你有自己的经验编写mex函数,这将有所帮助,所以你熟悉调用约定。

+0

是否需要安装Matlab才能使用此功能并从C++调用mex? – 2016-02-04 08:09:01