02 2013 档案
摘要:在此作以记录。 代码如下: clear clc img=double(imread('lena.jpg')); matlabpool local 2 %设置核数 tic parfor i=1:1000 %多运行几次,注意不是for [s v d]=svd(img); end toc matlabpo
阅读全文
摘要:这里的环境是windows7+vs2010+matlabR2010b上一篇是通过engine来调用matlab中的语句,本篇是通过调用m文件编译成的h/lib/dll文件而实现的。首先写一个函数mysvd.m:function [s v d]=mysvd(a) [s v d]=svd(a);end在matlab终端输入mbuild -setup来选择要使用的编译器,按提示选择就可以了。选择好之后再输入mcc -W cpplib:libmysvd -T link:lib mysvd.m稍等片刻,当前目录下就会产生一大堆文件,不过我们只需要libmysvd.h、libmysvd.lib、li...
阅读全文
摘要:就我目前了解的c++调用matlab有两种方法。第一种是通过matlab引擎调用,也就是这里用到的方法。第二种是用matlab将m文件编译为相应的h/lib/dll文件再加以调用。使用engine所用到的h和lib文件基本在D:\Program Files\MATLAB\R2010b\extern里面,当然不同的机器安装的地方都不一样。头文件只需engine.h即可。lib文件需要这三个:libmx.lib/libmat.lib/libeng.lib。至于如何配置我就不介绍了,方法很多。引擎相应的部分函数如下:engOpen:启动Matlab引擎engClose:关闭Matlab引擎engGe
阅读全文
摘要:我这里的环境是window 7+vs2010+matlab R2010b。首先需要输入mex -setup来确定需要使用的编译器,基本按照提示一步步下来就行了。下面是写c++文件,这里写的c++文件名就是将来要调用的函数名,我这里是SUM.cppSUM.cpp:#include "mex.h" //必须有这个//调用形式 re=SUM(arr0,arr1),将两个矩阵相加赋值给结果矩阵。//nlhs:输出参数个数//plhs:输出参数列表//nrhs:输入参数个数//prhs:输入参数列表void mexFunction(int nlhs,mxArray *plhs[],
阅读全文