使用VS调用matlab的mat格式文件Word文件下载.docx

上传人:b****5 文档编号:19015928 上传时间:2023-01-03 格式:DOCX 页数:6 大小:16.03KB
下载 相关 举报
使用VS调用matlab的mat格式文件Word文件下载.docx_第1页
第1页 / 共6页
使用VS调用matlab的mat格式文件Word文件下载.docx_第2页
第2页 / 共6页
使用VS调用matlab的mat格式文件Word文件下载.docx_第3页
第3页 / 共6页
使用VS调用matlab的mat格式文件Word文件下载.docx_第4页
第4页 / 共6页
使用VS调用matlab的mat格式文件Word文件下载.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

使用VS调用matlab的mat格式文件Word文件下载.docx

《使用VS调用matlab的mat格式文件Word文件下载.docx》由会员分享,可在线阅读,更多相关《使用VS调用matlab的mat格式文件Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。

使用VS调用matlab的mat格式文件Word文件下载.docx

高级系统设置-&

高级-&

环境变量

在Path中已经存在D:

\MATLAB_2011a\R2011a\bin\,但是D:

\MATLAB_2011a\R2011a\bin\win32下有个重要的libmat.dll。

如果不把d:

\MATLAB\R2010a\bin\改为D:

\MATLAB_2011a\R2011a\bin\win32程序将无法运行。

理论上D:

\MATLAB_2011a\R2011a\bin\应该会向深一步检索到libmat.dll。

坑爹的windows这一步并没有去做。

这步设置完后要重启(环境配置完毕)。

3.

3.使用MATLAB提供的MAT文件接口函数

在C/C++程序中有两种方式可以读取MAT文件数据。

利用MATLAB提供的有关MAT文件的编程接口函数。

MATLAB的库函数中包含了MAT文件接口函数库,其中有各种对MAT文件进行读写的函数,都是以mat开头的函数。

如表1所示。

表1C语言中的MAT文件读写函数MAT函数

功能

 

matOpen

打开MAT文件

matClose

关闭MAT文件

matGetDir

从MAT文件中获得MATLAB阵列的列表

matGetFp

获得一个指向MAT文件的ANSIC文件指针

matGetVariable

从MAT文件中读取MATLAB阵列

matPutVariable

写MATLAB阵列到MAT文件

matGetNextVariable

从MAT文件中读取下一个MATLAB阵列

matDeleteVariable

从MAT文件中删去下一个MATLAB阵列

matPutVariableAsGlobal

从MATLAB阵列写入到MAT文件中

matGetVariableInfo

从MAT文件中读取MATLAB阵列头信息

matGetNextVariableInfo

从MAT文件中读取下一个MATLAB阵列头信息

4.程序举例:

读取.mat文件,并把mat内容存储在图像中并显示。

注意:

坑爹的默认读取.mat的方式是按列读取,不是按行读取,害的劳资瞎忙乎一晚上!

[cpp]viewplaincopyprint?

#include"

stdafx.h"

/*intmain()*/

intloadMat(Mat&

amp;

regId)

{

MATFile*pmat;

constchar**dir;

constchar*file;

constchar*name;

intndir;

mxArray*pa;

file="

/labels3_ms.mat"

;

//双反斜杠防止转义

pmat=matOpen(file,"

r"

);

//打开文件,返回指向文件指针

if(pmat==NULL){

cout&

lt;

&

"

Erroropeningfile"

return

(1);

}

dir=(constchar**)matGetDir(pmat,&

ndir);

//ndir表示mat文件中含有矩阵数目

if(dir==NULL){

std:

:

cout&

Errorreadingdirectoryoffile"

else

{

for(inti=0;

i&

ndir;

i++)

MatNUM:

"

//重新打开文件;

pa=matGetNextVariable(pmat,&

name);

//返回指向文件头文件信息的指针,指针类型为*mxArray;

//name是矩阵的名字;

intii=mxGetM(pa);

//矩阵行数400

intjj=mxGetN(pa);

//矩阵列数300

int*pm=(int*)mxGetPr(pa);

//获取矩阵数值,返回指向矩阵第一数值的指针;

regId=Mat:

zeros(jj,ii,CV_8UC1);

/*ofstreamout("

/abc.txt"

*/

mapregSize;

intm=0;

for(intr=0;

r

intn=0;

m++;

uchar*id=regId.ptr(r);

for(intc=0;

c

id[c]=(*pm);

pm++;

regSize[*pm]++;

regSize:

//for(map:

iteratoriter=regSize.begin();

iter!

=regSize.end();

iter++)

//{

//cout&

first&

size:

second&

//}

mxFree(dir);

////normalize(regId,regId,0,1,CV_MINMAX,CV_32FC1);

regId=regId.t();

//imshow("

show"

regId);

//waitKey();

//imwrite("

/regId1.jpg"

//return1;

returnregSize.size();

}

另附:

使用VS调用matlab的.m文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1