matlab与visual c 溷合编程

matlab与visual c 溷合编程

ID:8190412

大小:579.75 KB

页数:4页

时间:2018-03-09

matlab与visual c 溷合编程_第1页
matlab与visual c 溷合编程_第2页
matlab与visual c 溷合编程_第3页
matlab与visual c 溷合编程_第4页
资源描述:

《matlab与visual c 溷合编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Matlab与Visualc++接口编程以广义特征值为例1,Matlab程序function[v,d]=qrfact(a,b)[v,d]=eig(a,b);end2,Matlab程序编译>>deploytool创建一个工程qrfact.prj,将qrfat.m加入qrfact.prj编译编译完成后在该项目目录的qrfactsrc下会出现qrfact.dll,qrfact.h和qrfact.lib等文件。3,Vc设置首先在Visualc++下建立一个MFC项目cmatlab(笔者利用VisualStudio2008)将qrfact.dll拷贝至c:win

2、dowssystem32下,将qrfact.h和qrfact.lib拷贝至cmatlab项目目录下。在打开VisualStudio2008,在“项目->选项->项目和解决方案”中,选择“包含文件”中加入matlab的include路径,笔者为“C:ProgramFilesMATLABR2009aexterninclude”;在“项目->选项->项目和解决方案”中,选择“库文件”中加入matlab静态库的路径“C:ProgramFilesMATLABR2009aexternlibwin32lcc”。可根据自己系统的实际情况选择,笔者

3、为32位系统,故选择win32,如果为64位系统则选win64.在“项目->属性”按下图设置,在附加依赖项中加入mclmcrrt.lib,mclmcr.lib和qrfact.lib三个静态库。4,源代码实现4.1打开项目文件夹中的targetver.h头文件,把其中的0X0600修改为0X0501,即:#defineWINVER0x0600===>>#defineWINVER0x0501#define_WIN32_WINNT0x0600===>>#define_WIN32_WINNT0x05014.2在*.cpp文件中加入头文件#include“qrfac

4、t.h”voidCcmatlabDoc::OnQrfactorization(){//TODO:在此添加命令处理程序代码if(pmesh.VertexNumber<=0)return;if(!qrfactInitialize())return;//计算图的临接矩阵,可根据实际情况,自己编写,也可以指定广义特征值的两个矩阵a,b;intvtxnumber=pmesh.VertexNumber;double*pneighbor;pneighbor=newdouble[vtxnumber*vtxnumber];memset(pneighbor,0,sizeof(

5、double)*vtxnumber*vtxnumber);inti,j,vid0,vid1;for(i=0;i

6、++){sum+=pneighbor[i*vtxnumber+j];}pneighbor[i*vtxnumber+i]=-sum;}double*parea;parea=newdouble[vtxnumber*vtxnumber];memset(parea,0,sizeof(double)*vtxnumber*vtxnumber);for(i=0;i

7、AL);memcpy((void*)mxGetPr(a),(void*)pneighbor,_msize(pneighbor));mxArray*b;b=mxCreateDoubleMatrix(vtxnumber,vtxnumber,mxREAL);memcpy((void*)mxGetPr(b),(void*)parea,_msize(parea));mxArray*v;v=mxCreateDoubleMatrix(vtxnumber,vtxnumber,mxREAL);mxArray*d;d=mxCreateDoubleMatrix(vtxnumbe

8、r,vtxnumber,mxREAL);//执行广义特征值和特征向

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。