主要内容

读取电子表格数据到表格中

在MATLAB®中表示电子表格数据的最好方法是使用表格,该表可以存储数字和文本数据,以及变量和行名。可以以交互方式或编程方式将数据读取到表中。要交互选择数据,请单击导入数据首页选项卡,变量部分。要以编程方式导入数据,请使用以下函数之一:

  • readtable-阅读单个工作表。

  • spreadsheetDatastore—读取多个工作表或文件。

这个示例展示了如何使用这两个函数以编程方式导入电子表格数据。样本数据,airlinesmall_subset.xlsx,包含了从1996年到2008年的每一年的一张表格。表名对应的年份,如2003

从工作表中读取所有数据

调用readtable读取名为2008的工作表中的所有数据,然后只显示前10行和列。属性指定工作表名称名称-值对的论点。如果数据位于文件中的第一个工作表中,则不需要指定

T = readtable (“airlinesmall_subset.xlsx”“表”“2008”);T (1:10, 1:10)
ans =10×10表年月DayofMonth DayOfWeek DepTime CRSDepTime ArrTime CRSArrTime UniqueCarrier FlightNum  ____ _____ __________ _________ _______ __________ _______ __________ _____________ _________ 2008 1 3 4 1012 1010 1136 1135{的WN} 4 5 752 2008 1303 1300 1411 1415{的WN} 1 6 7 1161 2008 2134 2115 2242 2220{的WN} 1830 2008 1655 7 1734 54 30 {' WN '}8 2 302 2008 1750 1755 2018 2035{的WN} 1305 2008 1 9 640 645 855 905{的WN} 896 2008 1 1943 1945 2039 2040 4{的WN} 11 5 120 2008 1303 1305 1401 1400{的WN} 13 7 1685 2008 1226 1230 1415 1400{的WN} 14 1 1337 1340 1623 1118 2008 1 1630{的WN} 730

阅读特定工作表中的选定范围

从命名的工作表1996,通过指定一个范围,从前5列只读取10行数据,“A1: E11”.的readtable函数返回一个10 × 5的表。

T_selected = readtable (“airlinesmall_subset.xlsx”“表”“1996”“范围”“A1: E11”
T_selected =10×5表年月DayofMonth DayOfWeek DepTime  ____ _____ __________ _________ _______ 1996 1 18 4 2117 1996 1 12 5 1252 1996 1 16 2 1441 1996 1 1 1 2258 1996 1 4 4 1814 1996 1 31 3 1822 1996 1 18 4 729 1996 1 26 5 1704 1996 1 11 4 1858 1996 1 2100 7

将变量转换为日期时间、持续时间或类别

在导入过程中,readtable自动检测变量的数据类型。但是,如果数据包含非标准日期、持续时间或重复标签,则可以将这些变量转换为正确的数据类型。将变量转换为正确的数据类型可以执行有效的计算和比较,并提高内存使用。例如,表示变量一年,DayofMonth作为一个datetime变量,UniqueCarrier作为分类,ArrDelay作为持续时间在几分钟内。

数据= T (: {“年”“月”“DayofMonth”“UniqueCarrier”“ArrDelay”});数据。日期= datetime (data.Year data.Month data.DayofMonth);数据。UniqueCarrier =分类(data.UniqueCarrier);数据。ArrDelay =分钟(data.ArrDelay);

找出一年中延迟时间最长的日期,然后显示日期。

印第安纳州=找到(数据。ArrDelay== max(data.ArrDelay)); data.Date(ind)
ans =datetime07 - 4月- 2008

从电子表格文件中读取所有工作表

数据存储对于处理分布在多个工作表或多个电子表格文件中的任意大量数据非常有用。您可以通过数据存储进行数据导入和数据处理。

中的工作表集合创建数据存储airlinesmall_subset.xlsx,选择要导入的变量,然后预览数据。

ds = spreadsheetDatastore (“airlinesmall_subset.xlsx”);ds。SelectedVariableNames = {“年”“月”“DayofMonth”“UniqueCarrier”“ArrDelay”};预览(ds)
ans =8×5表年月DayofMonth UniqueCarrier ArrDelay  ____ _____ __________ _____________ ________ 18{“惠普”}6 1996 1996 1996 12{“惠普”}11 -13 16{“惠普”}{“惠普”}1 1996 1996 1996 4{‘我们’}9 1 31{‘我们’}9 18{‘我们’}2 1996 1996 -10 26{“西北”}

在导入数据之前,可以指定要使用的数据类型。对于本例,使用importUniqueCarrier作为一个分类变量。

ds.SelectedVariableTypes (4) = {“分类”};

使用readall功能。的readall函数要求所有数据都装入内存,对于示例数据也是如此。导入之后,计算此数据集的最大到达延迟。

alldata = readall (ds);马克斯(alldata.ArrDelay) / 60
ans = 15.2333

对于大型数据集,使用函数。有关更多信息,请参见读取电子表格文件的集合或序列

另请参阅

|

相关的话题