本人乃C++白痴一枚,今需将一个int数组用mat文件保存,奋战半日有余,终成。恐日后遇类似情况无所从,故而留下此文,待日后查询。

PS:工程设置,亲测,http://blog.csdn.net/left_la/article/details/8206645给出的步骤完全没错,以下为详细过程。

我的计算机环境是win7 64位系统,VS2010,matlab R2012b。

一、工程配置:
1.C/C++->常规->附加包含目录 添加:
MATLAB\R2010b\extern\include
MATLAB\R2010b\extern\include\win64
2.链接器->常规->附加库目录 添加:
MATLAB\R2010b\extern\lib\win64\microsoft
MATLAB\R2010b\extern\lib\win32\microsoft
3.链接器->输入->附加依赖库 添加:
libmat.lib
libmx.lib
libmex.lib
libeng.lib

由于所安装的matlab为64位,要调用其函数,需要将工程转换为X64
4.顶菜单->生成->配置管理器->平台:X64
5.链接器->高级->目标计算机:
MachineX64(/MACHINE:X64)

6.计算机环境变量->path 添加:
E:\DevTools\MATLAB\R2010b\extern\lib\win64\microsoft;
E:\DevTools\MATLAB\R2010b\bin\win64;

代码部分:

包含头文件:

#include <matrix.h>

#include <mat.h>

写文件:

MATFile *pmatFile = matOpen(matName,"w");
mxArray *pMxArray = NULL;
pMxArray = mxCreateDoubleMatrix(N, M, mxREAL);

double* datas = NULL;
datas = (double*)mxMalloc(N*M*sizeof(double));

mxSetData(pMxArray, datas);
matPutVariable(pmatFile, "datas", pMxArray);

matClose(pmatFile);

要注意的是:

void mxSetData(mxArray *pm, void *pr);

pr指Pointer to an array. Each element in the array contains the real component of a value. The array must be in dynamic memory; call mxCalloc to allocate this memory.

动态分配,调用mxMalloc乃关键。

mxMalloc申请的内存,无需mxFree,亦无需free,系统自将释放。

转载于:https://www.cnblogs.com/qingliu411/p/3327168.html

VS2010+matlab2012b环境下C++写MAT文件相关推荐

  1. .NET 容器环境下创建应用 dump 文件

    .NET 容器环境下创建应用 dump 文件 Intro 有时候我们的应用会出现一些异常的情况,比如内存飙升,线程死锁等等,通过一些 metrics 我们可能大概的了解内存是增长了,但是具体是哪里增长 ...

  2. 在windows环境下ftp服务器的文件上传和下载

    在windows环境下ftp服务器的文件上传和下载 mo 一.上传本地文件 第一步:登录FTP服务器.在开始菜单中输入cmd,回车进入.输入ftp进入服务器,输入命令格式:open FTP服务器地址 ...

  3. 堡垒机如何传输文件_堡垒机环境下使用putty传输文件

    堡垒机环境下使用putty传输文件 发布时间:2018-11-14 21:10, 浏览次数:1167 , 标签: putty 本文参考: https://www.cnblogs.com/bamanzi ...

  4. 关于tomcat环境下上传大文件遇到的问题及解决办法

    转载自:http://blog.csdn.net/tqwwilliam/article/details/7108247 问题描述: 关于tomcat环境下上传大文件遇到的问题及解决办法 解决方案: 1 ...

  5. 【数据分析day05】Scipy读/写.mat文件,wav,mp3

    Scipy文件输入/输出,wav,mp3 读写.mat 文件 写入 .savemat() 读取 .loadmat() wav 读 wavfile.read() 拼接 np.vstack() 写 wav ...

  6. linux 普通用户退出vim,Linux环境下VI/VIM编辑文件时无权限保存的解决方法(普通用户)...

    在Linux环境下,如果直接使用VI/VIM命令编辑没有修改权限的文件时,保存的时候就会提示用户无法进行保存操作,一般的解决方法只能是关闭文件重新以sudo权限打开该文件编辑后再保存(前提是用户具有s ...

  7. win10环境下c语言打开文件失败,cfile fopen fopen_s win10下打开文件失败

    vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统 ...

  8. RAC环境下创建本地数据文件的解决方法

    引用收藏:http://blog.itpub.net/501889/viewspace-1083311/ 同事不小心,在RAC环境下创建了本地数据文件,这个肯定会出问题的,节点2不能访问此数据文件.其 ...

  9. IIS+php环境下:上传文件出现:windows server PHP Warning: mkdir(): Permission denied 解决办法

    PHP Warning: mkdir(): Permission denied:解决办法 最近买个了腾讯云服务器(windows server 2012 r2)配置了个iis+php+mysql的网站 ...

最新文章

  1. ii第六单元 文本处理工具
  2. php session获取不到的解决方法
  3. 安装 ArcGISAPI31forSilverlight an i/o error occured while installing a file错误解决
  4. 【转】贴片电阻的工作寿命
  5. 方法区如何判断是否需要回收
  6. java中的操作符(位操作符>>与>>>的区别)
  7. Loj#6053-简单的函数【Min25筛】
  8. lda php,主题模型︱几款新主题模型——SentenceLDA、CopulaLDA、TWE简析与实现
  9. jQuery 1.11 / 2.1 beta 版发布
  10. cte公用表表达式_SQL Server中的CTE; 使用公用表表达式解决重新编制标识符列的问题
  11. 2018百度之星程序设计大赛初赛B——1004p1m2
  12. 林郑月娥冀香港发挥连接中外优势发展创科
  13. android 调用百度地图客户端,
  14. EDG夺冠引全网欢呼,电竞时代要来了吗?
  15. BLE广播包4种类型
  16. java 基本语法
  17. kubectl源码分析之config delete-context
  18. (附源码)SSM医疗健康查询系统JAVA计算机毕业设计项目
  19. Go语言学习教程(二)
  20. c语言自动填表chrome网页,教你设置Chrome浏览器里的自动填表功能

热门文章

  1. 螺旋矩阵 IIPython解法
  2. 与、或、短路或、自增、自减、的执行过程
  3. IntelliJ IDEA scala的源码设置
  4. linux如何执行平台,如何在Linux平台运行HelloWorld及测试项目
  5. 样条曲面_这样的曲面是如何画成的,用好剪裁工具,便迎刃而解
  6. java综合项目推荐,推荐20个5月最热门的Java开源项目
  7. 服务器虚拟交换机到网卡不通,S7700堆叠,服务器之间相互ping不通,关闭备交换机ping正常...
  8. 去掉a标签下划线_条码软件如何修改条码标签的字体格式
  9. 这位电子工程师,你不能错过。
  10. python中填充颜色结束的程序_在ttk/python中更改标签小部件的填充颜色