Main Content

导入电子表格

电子表格,(如 Microsoft® Excel® 文件)通常包含数值和文本数据以及变量名称和行名称的混合。在 MATLAB® 中表示电子表格数据的最常见方式是使用表,但您也可以在 MATLAB 中将电子表格数据表示为时间表、矩阵或元胞数组。

以编程方式或以交互方式从电子表格导入数据。以编程方式导入以使用定制的导入函数,并进一步控制如何使用导入选项导入数据。使用导入工具以交互方式导入。

以表的形式导入数据

您可以将电子表格数据作为表导入。一个表由若干列向变量组成,每个变量包含相同类型的数据。表中的变量可以保留不同数据类型和大小,但每个变量必须有相同的行数。有关表的详细信息,请参阅创建表并为其分配数据

使用 readtable 函数将表格数据从电子表格导入表中。例如,根据示例文件 patients.xls 创建一个表。显示表的前五行和前五列。

T = readtable("patients.xls");
T(1:5,1:5)
ans =

  5×5 table

      LastName        Gender      Age              Location               Height
    ____________    __________    ___    _____________________________    ______

    {'Smith'   }    {'Male'  }    38     {'County General Hospital'  }      71  
    {'Johnson' }    {'Male'  }    43     {'VA Hospital'              }      69  
    {'Williams'}    {'Female'}    38     {'St. Mary's Medical Center'}      64  
    {'Jones'   }    {'Female'}    40     {'VA Hospital'              }      67  
    {'Brown'   }    {'Female'}    49     {'County General Hospital'  }      64  

将数据以时间表形式导入

如果电子表格的行与时间相关联,您可以将数据作为时间表导入。与表一样,时间表允许您存储表格数据变量,这些变量可以有不同数据类型和大小,只要它们有相同的行数。此外,时间表还提供特定于时间的函数,以便使用一个或多个时间表中的时间戳数据执行对齐、组合和计算。有关时间表的详细信息,请参阅创建时间表

使用 readtimetable 函数将电子表格中的表格数据导入时间表。例如,从示例文件 sample.xls 创建一个时间表。显示时间表的前五行和前五列。

TT = readtimetable("sample.xls");
TT(1:5,1:5)
ans =

  5×5 timetable

       OutageTime          Region         Loss     Customers     RestorationTime            Cause       
    ________________    _____________    ______    __________    ________________    ___________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    2003-01-23 00:49    {'SouthEast'}    530.14    2.1204e+05                 NaT    {'winter storm'   }
    2003-02-07 21:15    {'SouthEast'}     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    2004-04-06 05:44    {'West'     }    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

以矩阵的形式导入数据

如果您的电子表格文件包含统一的数据(均为同一类型),您可以将数据以矩阵的形式导入。通过将数据导入矩阵中,您可以处理具有最基本格式的数组。

使用 readmatrix 将电子表格文件中的均匀数据导入矩阵。例如,基于示例文件 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

将数据以元胞数组的形式导入

元胞数组是一种包含名为元胞的索引数据容器的数据类型,其中的每个元胞都可以包含任意类型的数据。元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。

使用 readcell 将电子表格中的非均匀数据(混合类型的数据)导入元胞数组中。例如,基于 basic_cell.xls 中的非均匀数据创建一个元胞数组。

C = readcell("basic_cell.xls")
C = 3×3 cell array
    {[                   1]}    {[    2]}    {[        3]}
    {'hello'               }    {'world'}    {[      NaN]}
    {[10-Oct-2018 10:27:56]}    {[    1]}    {1x1 missing}

使用导入选项导入数据以进行更多控制

导入电子表格数据有时需要对导入过程进行更多控制。要自定义导入过程,您可以创建导入选项对象。该对象具有您可以根据自己的导入需求进行调整的属性。例如,您可以更改变量的数据类型或仅导入变量的子集。有关导入选项的详细信息,请参阅 detectImportOptions

以交互方式导入数据

您可以使用导入工具以交互方式将数据导入表或其他数据类型。

要打开导入工具,请在主页选项卡中的变量部分中,点击导入数据 。然后,选择要导入的文件。或者,在当前文件夹浏览器中右键点击文件名,然后选择导入数据。使用导入工具窗口,设置导入选项,然后点击导入所选内容 ,将数据导入 MATLAB。有关详细信息,请参阅使用导入工具读取电子表格数据

例如,根据示例电子表格文件 patients.xls 创建一个表。使用导入工具打开该文件,并选择数据范围和输出类型等选项。然后,点击导入所选内容 ,将数据作为表导入 MATLAB 工作区。

Import Tool showing options to specify the range of data, variable names row, and output type

另请参阅

函数

工具

相关主题