.如何用VC6读写MATLAB的.mat文件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.如何用VC6读写MATLAB的.mat文件

1、选VC的菜单Tools-Options,在弹出对话框中点选Directories标签,在右方的下拉菜单中选择Include files,然后在下方列表中添加($MATLAB$)externinclude;再在右方的下拉菜单中选择Library files,然后在下方列表中添加($MATLAB$)externlibwin32microsoftmsvc60。 注:上面的($MATLAB$)以计算机中MATLAB的安装位置替换;如果使用的VC版本是5.0,则把列表中添加路径中的msvc60替换成msvc50即可。 2、对于需要操作.mat文件的工程,选择菜单Project-Settings,在弹出对话框中点选Link标签,在Object/library modules中加入 libmx.lib、libmat.lib。下面是程序中的调用,以例子说明用法,必要时候如用到mxArray时候还要加入sgl.lib 和 libmatlbmx.lib。 3、一定要加入? #i nclude mat.h ,如果要对mxArray进行操作,要加入#include matlab.h 。具体的mfc程序的例子见“e:.....StaticDraw”工程。 C语言的源码: 写入.mat文件的示例: 1.?? #include mat.h 2.?? 3.?? void main() { 4.?? ????MATFile *pMF; // mat文件 5.?? ????mxArray *pA; // 矩阵指针 6.?? ????double *A; // 数据指针 7.?? ????int i, j; 8.?? ????// 打开一个test.mat文件,只写,如果不存在就新建,否则删除重建 9.?? ????pMF = matOpen(test.mat, w); 10.? ????// 新建一个12*4的矩阵只有实部(在MATLAB里矩阵都是复矩阵) 11.? ????pA = mxCreateDoubleMatrix(12, 4, mxREAL); 12.? ????// 给这个矩阵命名为x 13.? ????mxSetName(pA, x); 14.? ????// 让指针Array指向这个矩阵的数据 15.? ????A = mxGetPr(pA); 16.? ????// 在VC里数组是按行排放的,在MATLAB里矩阵是按列排放的,) 17.? ????for (i = 0; i 12; i++) 18.? ????????for (j = 0; j 4; j++) 19.? ????????????A[j * 12 + i] = i + 0.001 * j; 20.? ????// 将矩阵写到文件test内 21.? ????matPutArray(pMF, pA); //好像没这个函数,如何实现看mfc的源程序 22.? ????// 释放矩阵空间 23.? ????mxDestroyArray(pA); 24.? ????// 关闭文件 25.? ????matClose(pMF); 26.? } 27.? 读出.mat文件的示例: 1.?? #include iostream.h 2.?? #include mat.h 3.?? 4.?? void main() { 5.?? ????MATFile *pMF; // mat文件 6.?? ????mxArray *pA; // 矩阵指针 7.?? ????double *A; // 数据指针 8.?? ????int i, j; 9.?? ????// 打开test.mat文件,只读(这里作为简单示例不做错误检查) 10.? ????pMF = matOpen(d:\nick\test.mat, r); 11.? ????// 获得矩阵 12.? ????pA = matGetArray(pMF, x); 13.? ????// 获得矩阵数据地址 14.? ????A = mxGetPr(pA); 15.? ????// 列印矩阵 16.? ????for (i = 0; i 12; i++) { 17.? ????????for (j = 0; j 4; j++) cout A[j * 12 + i] ; 18.? ????????cout endl; 19.? ????} 20.? ????// 释放矩阵空间 21.? ????mxDestroyArray(pA); 22.? ????// 关闭文件 23.? ????matClose(pMF);/**/ 24.

文档评论(0)

wf93679 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档