matlab deployrool,(转载)VC++与Matlab混合编程-使用deploytool

1.准备工作配置Matlab编译器(参见MMC使用)

2.Matlab中M文件转换

2.1先写一个m文件,这里就写了一个简单的输入n,输出magic(n)的测试程序

function [matrix]=magicMatrix(n)

if n>0

matrix =

magic(n)

end

2.2命名为magicMatrix.m保存到magic目录下,

2.3matlab命令行中运行deploytool

2.4选择create a

new deployment project,选择matlab compiler,c++ shared

library,命名为magic.prj,保存,出现的project;

2.5右键点击

exported functions, add files, 将magicMatrix.m加进去,或者直接从工作目录中拖进去;

2.6build

the project,

完成后得到一个magic文件夹,包含distrib和src两个子目录,distrib中的文件就是将magicMatrix.m加到C++调用要使用

的文件,包括

magicMatrix.ctf,magicMatrix.dll,magicMatrix.exports,magicMatrix.h,matrixMatrix.lib;

3

VC++创建工程

vs中新建一个console application,添加main.cpp,将之前得到的文件全部复制到程序目录下(主要是.h

,.dll, .lib),

main.cpp为:

//D:\Program

Files\MATLAB\R2007a\extern\lib\win32\microsoft

#pragma comment(lib,"libdflapack.lib")

#pragma comment(lib,"libemlrt.lib")

#pragma comment(lib,"libeng.lib")

#pragma comment(lib,"libfixedpoint.lib")

#pragma comment(lib,"libmat.lib")

#pragma comment(lib,"libmex.lib")

#pragma comment(lib,"libmwlapack.lib")

#pragma comment(lib,"libmwservices.lib")

#pragma comment(lib,"libmx.lib")

#pragma comment(lib,"libut.lib")

#pragma comment(lib,"mclcom.lib")

#pragma comment(lib,"mclcommain.lib")

#pragma comment(lib,"mclmcr.lib")

#pragma comment(lib,"mclmcrrt.lib")

#pragma comment(lib,"mclxlmain.lib")

//m文件生成的

#pragma comment(lib,"magicMatrix.lib")

#include "magicMatrix.h"

#include

using namespace std;

int main()

{

cout<

magicMatrixInitialize(); //initial

// magicMatrix(int nargout, mwArray& matrix,

const mwArray& n);

mwArray

n(1,1,mxINT8_CLASS);

short int

nargout = 1;

int

temp[1]={3};

n.SetData(temp,1);

mwArray

matrix(3,3,mxINT8_CLASS);

magicMatrix(nargout,matrix,n);

cout<

magicMatrixTerminate();//terminate

return

0;

}

前面的一些lib是D:\Program

Files\MATLAB\R2007a\extern\lib\win32\microsoft目录下的lib也可以通过project

setting设置,考虑其他项目才这样写的,主要用到的数据结构可以参考compiler的帮助文件。运行就可以得到matlab运行得到的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值