使用matlab的MAT.H(c读取mat文件)

使用matlab的MAT.H(c读取mat文件)

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

vs配置matlab文件

  1. 下载好matlab ,找到matlab的目录(假设存放在E:\matlab);
  2. 配置环境变量
    找到下面的路径
E:\matlab\bin
E:\matlab\bin\win64

添加进环境变量
操作方法:右键点击我的电脑>>打开属性>>高级系统设置>>环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.配置VS
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

#include <iostream>
#include <mat.h>  
using namespace std;

int main()
{
	MATFile *pmatFile = NULL;
	mxArray *pMxArray = NULL;

	// 读取.mat文件(例:mat文件名为"initUrban.mat",其中包含"initA")    
	double *initA;

	pmatFile = matOpen("yrdn1.mat", "r");		//只读的方式打开文件
	pMxArray = matGetVariable(pmatFile, "DTM");	//使用matGetVariable函数读取mat文件中的变量 
	initA = (double*)mxGetData(pMxArray);
	int M = mxGetM(pMxArray);
	int N = mxGetN(pMxArray);
	for (int i = 0; i < M; i++)
	{
		for (int j = 0; j < N; j++)
		{
			//cout << initA[M*j + i] << " ";
		}
	}
	cout << M * N << " " << M << " " << N << endl;
	matClose(pmatFile);
	mxFree(initA);

}


/*1.使用matOpen函数打开mat文件


MATFile *matOpen(const char *filename,const char *mode)

mode:
r:以只读方式打开
u:更新模式,可读可写,但是如果要打开的数据文件不存在,也不会创建新的文件
w:以写入方式打开,只能写如入,如果要打开的数据文件不存在,则创建一个新的文件


2.使用matGetVariable函数读取mat文件中的变量

mxArray * matGetVariable(MATFile * pMF, const char * name);

读取名为name的变量,返回一个数据阵列指针


3.使用mxGetData函数获取数据阵列中的数据

void *mxGetData(const mxArray *pa );

返回时需要使用强制类型转换。


4.使用mxGetM和mxGetN函数获取数据阵列矩阵的维数

size_t mxGetM(const mxArray *pa);

size_t mxGetN(const mxArray *pa);


5.使用mxSetData函数将变量存入数据阵列

void mxSetData( mxArray *pa, void  *newdata );


6.使用matPutVariable函数将数据阵列存入到mat文件中

int matPutVariable(MATFile * pMF, const char * name, const mxArray * pA);

存入成功返回0,存入出错返回非0


7.由于malab中矩阵的存储是按列存储,与c中不同,所以从mat文件中获取的矩阵需要重新排列。生成mat文件时,同样要注意。 */
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值