vs2010调用matlab2010b,VS2010调用matlab2010b引擎
VS2010環境配置(32位的運行平臺對應32位的matlab)
1. 建立win32工程,添加C++測試代碼:
#include
#include "windows.h"
#include "math.h"
#include "engine.h"
int main()
{
const int N = 50;
double x[N], y[N];
int j = 1;
for(inti = 0;i
{
x[i] = (i + 1);
y[i] =sin(x[i]) +j * log(x[i]);
j*= -1;
}
Engine*pEng =NULL;
//open engine
if (!(pEng =engOpen(NULL)))
{
std::cout<
system("pause");
return-1;
}
mxArray*xx =mxCreateDoubleMatrix(1,N,mxREAL);
mxArray*yy =mxCreateDoubleMatrix(1,N,mxREAL);
memcpy(mxGetPr(xx),x,N*sizeof(double));
memcpy(mxGetPr(yy),y,N*sizeof(double));
engPutVariable(pEng,"xx",xx);
engPutVariable(pEng,"yy",yy);
std::stringevalString="plot(xx,yy);";
engEvalString(pEng,evalString.c_str());
mxDestroyArray(xx);
mxDestroyArray(yy);
Sleep(3*60*100);
//close engine
if(NULL !=pEng)
{
engClose(pEng);
}
system("pause");
return 1;
}
2. 工程屬性配置:
1)右鍵工程屬性-->VC++目錄--> 包含目錄:(或者 在?C/C++ -->常規--> 附加包含目錄下添加)
D:\MATLAB\R2010b\extern\include\win32
D:\MATLAB\R2010b\extern\include
2) 庫目錄:
在“連接器”項?(啟動項目)--> “常規”下 添加(如果是非啟動項目,則在庫管理器項的常規下添加)
D:\MATLAB\R2010b\extern\lib\win32\microsoft
3) 鏈接器-->輸入-->附加依賴項:
(非啟動項目在“庫管理器” 項的“常規”下的“附加依賴項”里添加)
3. 環境變量配置(電腦系統屬性)
D:\MATLAB\R2010b\runtime\win32;D:\MATLAB\R2010b\bin\win32;
4. 可能的出錯:
1) win32的C++工程matlab 64位或 win64的c++工程matlab 32位;
出錯提示:應用程序無法正常啟動(0xc00007)
正確的為:win32的C++工程matlab 32位或win64的c++工程matlab 64位;相應的,在配置VS工程時,選用不同的包含目錄和庫目錄和在環境配置時,添加不同的平臺環境。
2) 環境變量沒配置正確
出錯提示:計算機中丟失libmx.dll
3) 若程序正常運行,但無法打開matlab引擎,則需進行“注冊”。
方法為:打開cmd,轉到目錄 MATLAB安裝目錄\bin,輸入matlab /regserver
總結
以上是生活随笔為你收集整理的vs2010调用matlab2010b,VS2010调用matlab2010b引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php autoload静态,Compo
- 下一篇: Php在线字体woff转svg,在线字体