Main Content

将电子表格数据读入数组或单个变量

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

您还可以通过指定 SheetRange 参数来选择要从电子表格中导入的数据。例如,将 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            4277290  cell               

您还可以通过指定 SheetRange 参数来选择要从电子表格中导入的数据。例如,将 Sheet 参数指定为 '2007',将 Range 参数指定为 'G2:I11'readcell 函数从名为 '2007' 的工作表中,为 789 列中的变量导入十行数据。

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              

您还可以通过指定 SheetRange 参数来选择要从电子表格中导入的子集。例如,从名为 '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

另请参阅

| | |

相关主题