【终于配置成功了】
来源:http://blog.sina.com.cn/s/blog_9d40b613010142un.html
最近在编写C++程序的过程中,需要使用matlab生成的.mat文件,于是查找了基本使用方法。
我的计算机环境是win7
一、工程配置:
1.VC++目录->包含目录
MATLAB\R2010b\extern\include
MATLAB\R2010b\extern\include\win64
2.C/C++->常规->附加包含目录
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;
二、所用到的基本读取写入mat文件代码示例:
首先需要包含头文件:
#include
三、程序说明
1.使用matOpen函数打开mat文件
MATFile
mode:
r:以只读方式打开
u:更新模式,可读可写,但是如果要打开的数据文件不存在,也不会创建新的文件
w:以写入方式打开,只能写如入,如果要打开的数据文件不存在,则创建一个新的文件
2.使用matGetVariable函数读取mat文件中的变量
mxArray
读取名为name的变量,返回一个数据阵列指针
3.使用mxGetData函数获取数据阵列中的数据
void
返回时需要使用强制类型转换。
4.使用mxGetM和mxGetN函数获取数据阵列矩阵的维数
size_t
size_t
5.使用mxSetData函数将变量存入数据阵列
void
6.使用matPutVariable函数将数据阵列存入到mat文件中
int
存入成功返回0,存入出错返回非0
7.由于malab中矩阵的存储是按列存储,与c中不同,所以从mat文件中获取的矩阵需要重新排列。生成mat文件时,同样要注意。
8.完成mat文件操作后需要调用matClose函数关闭文件,并使用mxFree释放内存