vc调用matlab visual2005调用matlab7.0

在VS 2005中使用VC7.0来调用matlab7.0进行科学计算
1、新建一个空MFC单文档项目
2、在下拉菜单工具中点击选项,打开选项窗口
2、在选项窗口中,选择项目-〉VC++目录,在显示目录中选择包含文件,添加matlab路径


author:bcboycn e-mail: liangzh.cug@gmail.com
VC 与专业结合学习笔记
同样的方法添加库文件目录如下图所示
4、在项目中添加lib文件(这个地方与原来的VC6.0不太一样),点选项目-〉属性菜单
在链接器中的输入子栏中,改变附加依赖项的值如下
这样就设置好了matlab的基本调用条件。
5、在视图文档的头文件中添加#include "engine.h"
6、新建一个LButtonDown消息,添加以下程序:
void Cvc_study2View::OnLButtonDown(UINT nFlags, CPoint point)
{
Engine *ep;
mxArray *T = NULL, *result = NULL;
double time[10] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
if (!(ep = engOpen("\0"))) {
AfxMessageBox("Can't start MATLAB engine!");
return;
}
/*
* Create a variable for our data
*/
T = mxCreateDoubleMatrix(1, 10, mxREAL);
memcpy((void *)mxGetPr(T), (void *)time, sizeof(time));
/*
* Place the variable T into the MATLAB workspace
author:bcboycn e-mail: liangzh.cug@gmail.com
VC 与专业结合学习笔记
*/
engPutVariable(ep, "T", T);
/*
* Evaluate a function of time, distance = (1/2)g.*t.^2
* (g is the acceleration due to gravity)
*/
engEvalString(ep, "D = .5.*(-9.8).*T.^2;");
/*
* Plot the result
*/
engEvalString(ep, "plot(T,D);");
AfxMessageBox("OK...");
engClose(ep);
exit(0);
CView::OnLButtonDown(nFlags, point);
}
7、运行结果
author:bcboycn e-mail: liangzh.cug@gmail.com
VC 与专业结合学习笔记
[备注]
部分程序片断是选用matlab7.0例程engdemo.c;另外为了方便查找,将文献[2]中的相关函数粘贴如下:
其中最为关键的一个函数是:
[参考资料]
1、张浩平,付媛媛;VC++调用Matlab实现三维欧拉反褶积运算;物探化探计算技术;2006年5月,第28卷,第2期;
2、刘志俭等编著;Matlab应用程序接口用户指南;科学出版社;2000年8月;
author:bcboycn e-mail: liangzh.cug@gmail.com

全部评论

相关推荐

04-01 16:02
已编辑
武汉工程大学 Java
牛客98843461...:处女面??我还种马面渣男面处男面呢
点赞 评论 收藏
分享
努力的小明a:项目看着很眼熟,施磊老师吧,我也学的这个😋我当时是把rpc框架做成了一个分布式网盘,这是一个项目,然后muduo库做成集群即时通讯,又用QT做了个交互的客户端,这样又一个项目,然后一个轻量redis,一个CAD,总共四个项目,投了三个月就今天2月份一个小厂Qt offer,然后后面想开了,Qt啥的都能干,这个月get了个北京大厂的offer,做java后端,人生就是这么魔幻,现在就在去北京入职的路上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务