如何用matlab实现矩阵与mat格式、xlsx格式文件互转

目录

一、前言

二、.mat格式

三、.xlsx格式

四、出现load(‘file.mat’) 数据变成struct结构体的问题


一、前言

当我们利用matlab去处理我们的实验数据时,常常需要读取mat格式、xlsx格式文件,而且有时候我们又将利用Python去做后续工作,这时候我们就迫切需要了解矩阵与mat格式、xlsx格式文件怎样实现互转的。

二、.mat格式

1、将矩阵存储为.mat格式

当我们工作区有一个1500*1的矩阵,我们想将其以.mat格式存储起来

如何用matlab实现矩阵与mat格式、xlsx格式文件互转_第1张图片

 命令:save('filename.mat','data');其中filename是要存储的名字,data是要存储的矩阵

save('raw_data.mat','raw_data'); %存入当前目录下
save('./幅值数据/raw_data.mat','raw_data'); %存入指定的目录下

 如何用matlab实现矩阵与mat格式、xlsx格式文件互转_第2张图片

2、读取.mat数据文件

load('./幅值数据/raw_data.mat')

三、.xlsx格式

1、将矩阵存储为.xlsx格式数据文件

我们要使用xlswrite来将矩阵写入到表格文件中,如果不清楚这个命令的话,可以在控制台输入:“help xlswrite”即可知道它的用法了。

(1)xlswrite('1.xlsx',A);将矩阵A写入Excel电子表格工作簿1.xlsx中的第一张工作表,从单元格 A1 开始写入。

(2)xlswrite(filename,A,sheet) 将数据写入指定的工作表。

(3)xlswrite(filename,A,xlRange) 将数据写入工作簿的第一个工作表中由 xlRange 指定的矩形区域内。使用 Excel 范围语法,例如 'A1:C3'。

如果我们有个需求,就是将矩阵raw_data,写入到指定文件夹下(比如:幅值文件夹下),将该矩阵写入到第一个工作表中,且将所有1500*1数据写入到第二列该怎么操作呢?

xlswrite('./幅值数据/raw_data.xlsx',raw_data,1,'B1:B1500');

如何用matlab实现矩阵与mat格式、xlsx格式文件互转_第3张图片

2、读取.xlsx格式数据文件

 我们要使用xlsread来读取.xlsx文件,如果不清楚这个命令的话,可以在控制台输入:“help xlsread”即可知道它的用法了。它其实和上面的差不多,举个例子大家就明白了。比如:我们要读取工作表1,第2列的所有数据,只需输入下列命令就可。

raw_data=xlsread('./幅值数据/raw_data.xlsx',1,'B1:B1500'); %读取数据

如何用matlab实现矩阵与mat格式、xlsx格式文件互转_第4张图片

四、出现load(‘file.mat’) 数据变成struct结构体的问题

当我们加载数据的时候,诸如:Amp1=load('.\幅值数据\1-0.2.mat'),会变成下列样子:

我们发现用load加载.mat文件时,如果进行了赋值就会变成结构体struct型,如果不赋值,诸如:load('.\幅值数据\1-0.2.mat'),则加载的数据为原来的数据类型。有两种解决方案,如下:

1、如果不需要将数据赋值给另外一个变量的话,直接使用load(‘file.mat’)进行数据加载;

2、如果我们一定要将数据赋值给另外一个变量的话,就需要使用importdata(‘file.mat’)进行数据加载了。

你可能感兴趣的:(MATLAB,1024程序员节,matlab,mat文件,xlsx文件)