主要内容

电子表格数据读入表

在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 7 1734 1655 54{的WN} 302 2008 1 8 2 1750 1755 2018 2035{的WN} 1305 640 645 855 2008 1 9 905{的WN} 10 4 896 2008 1943 1945 2039 2040{的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年只读10排前5列的数据通过指定一个范围,“A1: E11”。的readtable函数返回一个10-by-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{“西北”}

在导入数据之前,您可以指定使用什么数据类型。对于这个示例,导入UniqueCarrier作为分类变量。

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

进口数据使用readall功能。的readall功能要求所有的数据放入内存,这是真正的样本数据。导入后,计算出最大的到来推迟这个数据集。

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

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

另请参阅

|

相关的话题