如何使用MATLAB Compiler使用Python生成的C共享库中的函数

时间:2014-05-22 05:58:41

标签: matlab python-2.7 matlab-compiler

我知道使用MATLAB Compiler创建的dll文件需要MATLAB Compiler Runtime(MCR)。所以问题是: a)如何使用Python初始化MCR? b)如何在MCR初始化后访问dll文件中的函数?

我在Windows 7上使用MATLAB R2012B,MCR v80和Python 2.7.6。

1 个答案:

答案 0 :(得分:1)

关于MATLAB"功能",请查看Loren的博客文章:

http://blogs.mathworks.com/loren/2011/02/03/creating-c-shared-libraries-and-dlls/

它显示了如何创建共享库以及如何使用它的完整示例。 引用该链接的示例代码,初始化MCR以及您必须调用的生成的库:

// Initialize the MATLAB Compiler Runtime global state
if (!mclInitializeApplication(NULL,0))
{
    std::cerr << "Could not initialize the application properly."
              << std::endl;
    return -1;
}

// Initialize the Vigenere library
if( !libvigenereInitialize() )
{
    std::cerr << "Could not initialize the library properly."
              << std::endl;
    return -1;
}

您显然必须用图书馆名称替换libvigenere

现在您可以调用生成的matlab函数,就像调用任何C函数一样。 最后,关闭一切:

// Shut down the library and the application global state.
libvigenereTerminate();
mclTerminateApplication();

确认与python的连接,有多种方式,所有方法都描述于在这个问题:

Calling C/C++ from python?