主要内容

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

R2026b

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

另请参阅

| | |

主题