将电子表格数据读入数组或单个变量
MATLAB® 中表示电子表格数据的最佳方法是在表中表示,表可以存储混合的数值和文本数据。但是,有时您需要将电子表格数据作为矩阵、元胞数组或单独的变量导入。根据 MATLAB® 工作区中的数据和数据类型,使用以下函数之一:
readmatrix- 将同构数值或文本数据作为矩阵导入。readcell- 将混合的数值和文本数据作为元胞数组导入。readvars- 将电子表格列作为单独变量导入。
将电子表格数据读入到矩阵中
将数值数据从 basic_matrix.xls 导入矩阵。
M = readmatrix('basic_matrix.xls')M = 5×4
6 8 3 1
5 4 7 3
1 6 7 10
4 2 8 2
2 7 5 9
您还可以通过指定 Sheet 和 Range 参数来选择要从电子表格中导入的数据。例如,将 Sheet 参数指定为 'Sheet1',将 Range 参数指定为 'B1:D3'。readmatrix 函数读取数据的一个 3×3 子集,从名为 'Sheet1' 的工作表的第一行第二列的元素开始。
M = readmatrix('basic_matrix.xls','Sheet','Sheet1','Range','B1:D3')
M = 3×3
8 3 1
4 7 3
6 7 10
将电子表格数据读入元胞数组
将混合表格数据从 airlinesmall_subset.xlsx 导入元胞数组。
C = readcell('airlinesmall_subset.xlsx'); whos C
Name Size Bytes Class Attributes C 1339x29 4898586 cell
您还可以通过指定 Sheet 和 Range 参数来选择要从电子表格中导入的数据。例如,将 Sheet 参数指定为 '2007',将 Range 参数指定为 'G2:I11'。readcell 函数从名为 '2007' 的工作表中,为 7、8 和 9 列中的变量导入十行数据。
subC = readcell('airlinesmall_subset.xlsx','Sheet','2007','Range','G2:I11')
subC=10×3 cell array
{[ 935]} {[ 935]} {'WN'}
{[1041]} {[1040]} {'WN'}
{[1430]} {[1500]} {'WN'}
{[ 940]} {[ 950]} {'WN'}
{[1515]} {[1515]} {'WN'}
{[2042]} {[2035]} {'WN'}
{[2116]} {[2130]} {'WN'}
{[1604]} {[1605]} {'WN'}
{[1258]} {[1230]} {'WN'}
{[1134]} {[1145]} {'WN'}
将电子表格数据列作为单独变量读取
将 airlinesmall_subset.xlsx 中的前三列作为单独的工作区变量导入。
[Year,Month,DayOfMonth] = readvars('airlinesmall_subset.xlsx'); whos Year Month DayOfMonth
Name Size Bytes Class Attributes DayOfMonth 1338x1 10704 double Month 1338x1 10704 double Year 1338x1 10704 double
您还可以通过指定 Sheet 和 Range 参数来选择要从电子表格中导入的子集。例如,从名为 '2004' 的工作表中导入列 DayOfMonth 的十行。使用 Range 参数指定列和行数。
DayOfMonth = readvars('airlinesmall_subset.xlsx','Sheet','2004','Range','C2:C11')
DayOfMonth = 10×1
26
10
21
24
20
20
1
2
30
11
另请参阅
readtable | readmatrix | readcell | readvars