用C ++调用matlab mex文件

时间:2013-02-15 05:05:59

标签: c++ matlab mex

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

3 个答案:

答案 0 :(得分:0)

  1. 来自Matlab的mexext call 告诉您系统允许的兼容性。 (32位或64位)

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

  3. 前:

      

    system(“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 Release版本等。(不太了解这个,请检查一下)

    您可以轻松地将他们的mex可执行文件与Matlab一起使用。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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