我知道使用MATLAB Compiler创建的dll文件需要MATLAB Compiler Runtime(MCR)。所以问题是: a)如何使用Python初始化MCR? b)如何在MCR初始化后访问dll文件中的函数?
我在Windows 7上使用MATLAB R2012B,MCR v80和Python 2.7.6。
答案 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的连接,有多种方式,所有方法都描述于在这个问题: