matlab引擎成功在VC++中运行(VC++6.0 MFC)
来源:互联网 发布:淘宝茶叶店铺装修 编辑:程序博客网 时间:2024/06/10 18:11
一,对VC++的配置
工具->选项->目录,分别配置lib和include
图一
图二
接下来是每创建一个工程都需要修改的一个配置:
工程->设置->连接,添加入libmx.lib libmat.lib libeng.lib
图三
二,工程创建
在菜单栏menu上建立菜单,比如此处画图(ID什么的自己命名好,我的是ID_DATA_IN,最好见名知意)
图四
按Ctrl+W进入MFC classwizard
图五
插入代码如下:
CString curPath;
Engine *ep;
mxArray *T = NULL, *D = NULL;
double t[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// engOpen
if (!(ep = engOpen(NULL))) {
AfxMessageBox ("Can't start MATLAB engine");
return;
}
// engPutVariable [mxCreateDoubleMatrix,mxDestroyArray]
T = mxCreateDoubleMatrix(1, 10, mxREAL);
memcpy((void *)mxGetPr(T), (void *)t, sizeof(t));
engPutVariable(ep, "T", T);
engEvalString(ep, "D = .5.*(-9.8).*T.^2;");
engEvalString(ep, "figure;");
engEvalString(ep, "line(T,D,'Color',[0,0.5,1],'Marker','s','MarkerFaceColor',[1 1 0]);");
engEvalString(ep, "title('Position vs. Time for a falling object');");
engEvalString(ep, "xlabel('Time (seconds)');");
engEvalString(ep, "ylabel('Position (meters)');");
engEvalString(ep, "grid on;");
mxDestroyArray(T);
// engGetVariable
engEvalString(ep, "K=(1:length(D))'; D=[K,D',sin(K)]");
D=engGetVariable(ep, "D");
double *dReal;
dReal = mxGetPr(D);
CString s,sTmp;
int m,n;
m = mxGetM(D);
n = mxGetN(D);
s.Format("(m,n)=(%d,%d)\r\n",m,n);
for(int i=0; i<m; i++){
// please change <
for(int j=0; j<n; j++){
// please change <
sTmp.Format("%5.11f",dReal[j*m+i]);
while(sTmp.GetLength()<17){
sTmp = " "+sTmp;
}
s=s+sTmp+" ";
}
s=s+"\r\n";
}
s=s+"\r\n";
this->SetDlgItemText(IDC_EDIT1,s);
mxDestroyArray(D);
// engClose
AfxMessageBox ("Press enter to close engine");
engClose(ep);
最前面不要忘记加#include “engine.h”,之前我直接把该头文件拷贝到了工程的文件夹里,保险起见~
此处也可以先创建一个类然后在函数中应用。
图六
如果出现报错 “ Can't start MATLAB engine”,那么可以尝试启动matlab command window
1,运行cmd
2,在DOS命令行把文件夹定位到matlab中的bin下,(cd+文件夹名)运行matlab/regserver
- matlab引擎成功在VC++中运行(VC++6.0 MFC)
- VC中调用matlab引擎
- VC与Matlab混合编程(VC中使用Matlab引擎)
- 脱离matlab环境,在VC种运行
- VC++6.0与matlab引擎混合编程
- VC/MFC中计算程序运行时间
- VC/MFC中计算程序运行时间
- VC/MFC中计算程序运行时间
- VC/MFC中计算程序运行时间
- VC/MFC中计算程序运行时间
- VC/MFC中计算程序运行时间
- VC与Matlab混合编程(在VC中调用DLL)
- VC与Matlab混合编程(在VC中调用DLL) .
- VC与Matlab混合编程(在VC中调用DLL)
- VC与Matlab混合编程(在VC中调用DLL)
- 在VC中使用MATLAB C++函数库
- 在VC++中调用matlab函数
- vc中调用matlab引擎,如何写入循环!!!
- OOAD之设计模式-结构模式
- java虚拟机的启动错误PANIC: Could not open
- 【转载】MATLAB与VC++混合编程实现一维小波多尺度分解
- matlab compiler runtime(MCR)
- 独立于matlab的VC++和matlab的混合编程——利用matlabC++数学函数库
- matlab引擎成功在VC++中运行(VC++6.0 MFC)
- 关于MFC对TXT文件的读取(读至Cstring,再转到double)
- freeswitch 解决方案之RTMP to SIP 协议网关
- VC++与Matlab混合编程之一——matlab引擎
- MFC初学日志——添加对话框
- MFC初学日志——值传递(extern)及断点使用
- MATLAB绘图
- ArcEngine c#开发 距离面积量算 (零碎)
- ArcEngine c#开发 专题图制作 (零碎)