VC++与Matlab的一点点理解

本文介绍如何通过C/C++调用MATLAB引擎函数及如何在MATLAB环境中使用C语言生成的.mat文件。首先,通过启动MATLAB引擎并转换参数为矩阵形式来执行MATLAB函数。其次,详细说明了如何利用MATFile接口将C语言生成的数据写入.mat文件,并在MATLAB中进行处理。

一:通过C或C++调用MATLAB引擎函数
1.引用MATLAB函数库engine.h文件,首先启动MATLAB引擎(engOpen)
2.定义数据结构mxAarray* Test=NULL,再把参数转化为矩阵的形式Test=mxCreateDoubleMatrix(1,size,mxREAL)。
给变量参数取名mxSetName(Test,"Test"),把数据拷到矩阵中memcpy( , , )。
3.将转化的参数传递到引擎空间engPutArray(),然后就可进行运算engEvalString(ep,str),如果设置engOutputBuffer(ep,buffer,size),运行的结果就会存储到所设置的缓存buffer中(就是在MATLAB运行完后所有的..).
4.取出引擎中的数据,也就是运行结果result=engGetArray(ep,""),Data=mxGetPr(result),以供后续处理。
5.engClose关闭引擎,释放内存mxDestroyArray()。

二:以MATLAB为主 (MATFile *pmat)
1.定义数组结构mxArray *pa,把数据参数转化为矩阵pa=mxCreateDoubleMatrix( , ,mxREAL),为数据矩阵命名mxSetClassName(pa,"name")。打开一个文件pmat = matOpen(file, "w")
2.把数据参数设置成局部或者全局变量,然后把要使用的数据拷到矩阵中memcpy((void *)(mxGetPr(pa)),(void *)数据数组,siziof(数据数组)),把数据矩阵写到点mat格式文件中matPutVariable(pmat,"LocalDouble", pa1),然后释放内存mxDestroyArray(pa)。(1,2步骤以C语言写用来接收数据并生成MATLAB可用的.mat格式文件)
3.打开MATLAB程序,载入.mat文件load(),数据就读到了MATLAB工作内存空间了(workspace),然后就可进行计算了。运行完结果保存使用save()保存为.mat格式文件。如果要处理的数据是图片可以使用imread()函数读入图片,然后就可以使用图片处理函数进行处理,处理后图片可写成所需要的格式imwrite('')或者save('')成.mat文件格式,存到磁盘上。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值