将电子表格数据读入数组或单个变量
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