MATLAB导入txt文件技巧大全这篇推文中,讲解了如何将txt文件导入MATLAB中。今天继续为大家讲解如何将excel表格导入MATLAB中。

一个excel表格中可能有一个Sheet多个Sheet,虽然在MATLAB中只需要加些代码即可轻松实现,但是为了帮助各位更容易理解。因此,分为两部分讲解:1)excel表格中只有一个Sheet2)excel表格中只有多个Sheet


一 | excel表格中只有一个Sheet
表格中的数据如下所示,此时表格中只有一个Sheet。

MATLAB导入excel表格技巧大全_java


01 | 导入第1列数据
现在想把第1列的数据全部导入进来,可以使用如下代码,A1表示这一列的第一个数据的位置,A13表示这一列的最后一个数据的位置



filename = '例子.xlsx';                       %文件名[num,txt,raw] = xlsread(filename,'A1:A13');   %第一列在excel中为 A+数字,num是数字矩阵,txt是文字部分的元胞数组,raw是所有数据的元胞数组
运行如下,num是一个12行1列的矩阵,表示提取出的数字的矩阵txt是一个1行1列的元胞数组表示提取出的文字的元胞数组raw是一个13行1列的元胞数组,表示提取出的所有数据的元胞数组

xlsread函数在提取数字的过程中,遇到文字会分三种情况进行处理:
1)文字在需要导入的第一个数字之前,此时xlsread函数会自动跳过这些文字,直接跳到第一个需要导入的数字;2)文字在需要导入的若干个数字之间,此时xlsread函数会将这些文字赋值为Nan。3)文字在需要导入的若干个数字之后,此时xlsread函数会自动跳过这些文字在这个例子中,因为“序号”在第一个需要导入的数字“1”前面,所以直接跳过“序号”


02 | 导入第3列数据
为了进一步验证xlsread函数的机制,不妨拿第3列做一个实验,此时依然想把第3列所有数据全部导入进来,使用如下代码,C1表示这一列的第一个数据的位置,C13表示这一列的最后一个数据的位置



filename = '例子.xlsx';                       %文件名[num,txt,raw] = xlsread(filename,'C1:C13');   %第三列在excel中为 C+数字,num是数字矩阵,txt是文字部分的元胞数组,raw是所有数据的元胞数组
代码运行结果如下,num是一个8行1列的矩阵,表示提取出的数字的矩阵txt是一个13行1列元胞数组,表示提取出的文字的元胞数组raw是一个13行1列元胞数组,表示提取出的所有数据的元胞数组

在这个例子中,xlsread函数在提取数字,因为“y坐标”、“七”和“八”在第一个需要导入的数字“9”之前,所以直接跳过“y坐标”、“七”和“八”,而“十”在需要导入的数字之间,所以赋值为Nan,又因为“十七”和“十八”在需要导入的数字之后,所以直接跳过


03 | 导入Sheet1全部数据

现在想导入全部数据,可使用如下代码:



filename = '例子.xlsx';                       %文件名[num,txt,raw] = xlsread(filename);            %num是数字矩阵,txt是文字部分的元胞数组,raw是所有数据的元胞数组

代码运行结果如下,

num是一个12行3列的矩阵,表示提取出的数字的矩阵txt是一个13行3列元胞数组,表示提取出的文字的元胞数组raw是一个13行3列元胞数组,表示提取出的所有数据的元胞数组


04 | 导入Sheet1部分数据

现在想导入Sheet1中如下所示的部分数据,5的位置是A6,16的位置是C11

MATLAB导入excel表格技巧大全_java_02

可以使用如下代码导入上述数据:



filename = '例子.xlsx';                       %文件名[num,txt,raw] = xlsread(filename,'A6:C11');   %A6是左上角数据位置,C11是右下角数据位置,num是数字矩阵,txt是文字部分的元胞数组,raw是所有数据的元胞数组

代码运行结果如下,

num是一个6行3列矩阵,表示提取出的数字的矩阵txt是一个0行0列元胞数组,表示提取出的文字的元胞数组raw是一个6行3列元胞数组,表示提取出的所有数据的元胞数组


MATLAB导入excel表格技巧大全_java_03MATLAB导入excel表格技巧大全_java_04MATLAB导入excel表格技巧大全_java_05


二 | excel表格中有多个Sheet
现在excel表格中有3个Sheet,分别为Sheet1、Sheet2和Sheet3。

MATLAB导入excel表格技巧大全_java_06MATLAB导入excel表格技巧大全_java_07MATLAB导入excel表格技巧大全_java_08

现在想导入Sheet2中如下部分的数据,15的位置是A4,26的位置是C9

MATLAB导入excel表格技巧大全_java_09

可以使用如下代码导入上述数据,相较于之前的代码,在filename后增加了'Sheet2',表示提取哪一个Sheet的数据



filename = '例子.xlsx';                               %文件名[num,txt,raw] = xlsread(filename,'Sheet2','A4:C9');   %A4是左上角数据位置,C9是右下角数据位置,num是数字矩阵,txt是文字部分的元胞数组,raw是所有数据的元胞数组

代码运行结果如下,

num是一个6行3列的矩阵,表示提取出的数字的矩阵txt是一个0行0列的元胞数组,表示提取出的文字的元胞数组raw是一个6行3列的元胞数组,表示提取出的所有数据的元胞数组


MATLAB导入excel表格技巧大全_java_10MATLAB导入excel表格技巧大全_java_11MATLAB导入excel表格技巧大全_java_12