主要内容

将电子表格数据读入表

代表MATLAB®中的电子表格数据的最佳方法在表中,可以存储数字和文本数据的混合,以及变量和行名。您可以以交互方式或以编程方式读取数据。要交互方式选择数据,请单击导入数据在这一点标签,在多变的部分。为了以编程方式导入数据,使用其中一个函数:

  • 可阅读- 阅读单个工作表。

  • SpreadsheetDatastore.- 读取多个工作表或文件。

此示例显示如何使用这两个函数以编程方式导入电子表格数据。示例数据,airlinesmall_subset.xlsx.,在1996年和2008年期间,包含一张纸。页面名称对应于年份,例如2003年

阅读工作表中的所有数据

称呼可阅读要读取为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'} 752 2008 1 4 5 1303 1300 1411 1415 { 'WN'} 1161 2008 16 7 2134 2115 2242 2220 2220 {'Wn'} 1830 2008 2010 {'Wn'} 302 2008 2035 {'Wn'} 1305 2008 2008 2008 2008 2008 2008 2008 1 9 3 640 640 645 855 905 {'Wn'} 896 2008 11 10 4 1943 1945 2039 2040 {'Wn'} 120 2008 11 5 1303 1305 1411114111111141111141111114111141111411141111411114111141111411114111141114111411114111141114111411337 1340 1623 1630 {'wn'} 730

从特定工作表读取所选范围

从名为的工作表1996年,通过指定范围只读来自前5列的10行数据,'A1:E11'。这可阅读函数返回一个10×5表。

t_selected = readtable('airlinesmall_subset.xlsx''床单''1996''范围''A1:E11'
t_selected =.10×5表一年的月份Dayofmonth Dayofweek Deptime ____ ______________________________________________________ 1996 1996 1996 1996 1996 1996 1996 1 31 3 1822 1996 1 18 4 729 1996 1 26 5 17041996 1911 1996 1996 1 7 7 2100

将变量转换为DateTimes,持续时间或分类

在进口过程中,可阅读自动检测变量的数据类型。但是,如果您的数据包含非标准日期,持续时间或重复标签,则可以将这些变量转换为正确的数据类型。将变量转换为正确的数据类型允许您执行有效的计算和比较并提高内存使用情况。例如,表示变量, 和Dayofmonth.作为一个约会时间变量,uniqueCarrier作为分类, 和arrdelay.作为期间在几分钟内。

data = t(:,{'年''月''DayofMonth''unqueCarrier''arrdelay'});data.date = datetime(data.year,data.month,data.dayofmonth);data.unquecarrier =分类(data.unquecarrier);data.arrdelay =几分钟(data.arrdelay);

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

IND = find(data.arrdelay == max(data.arrdelay));data.date(Ind)
ans =.约会时间07年4月 -  2008年

阅读电子表格文件中的所有工作表

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

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

ds = spepsheetdatastore('airlinesmall_subset.xlsx');ds.selectedvariablenames = {'年''月''DayofMonth''unqueCarrier''arrdelay'};预览(DS)
ans =.8×5表一年的月份Dayofmonth UniqueCarrier Arrdelay ____ _____ _______________________________________________________ {Hp'} 6 1996 1 16 {'HP'} -13 1996 1 1 {HP'} 1 1996 1 4{'美国'} -9 1996 1996 1 31 {'美国'} 9 1996 1 18 {美国'} -2 1996 1 26 {'nw'} -10

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

ds.selectedvariabletypes(4)= {'分类'};

使用该数据导入数据读物或者职能。这读物函数要求所有数据都适合内存,这对于示例数据为真是如此。导入后,计算此数据集的最大到达延迟。

Alldata = Readall(DS);max(alldata.arrdelay)/ 60
ans = 15.2333.

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

也可以看看

|

相关话题