主要内容

立即使用数据存储

什么是数据存储?

数据存储是用于读取单个文件或文件或数据集合的对象。数据存储器充当具有相同结构和格式化的数据的存储库。例如,数据存储区中的每个文件必须包含与同一顺序出现的相同类型(例如数字或文本)的数据,并由相同的分隔符分隔。

数据存储是有用的:

  • 集合中的每个文件可能太大而无法适合内存。数据存储允许您从确实在内存中拟合的较小部分中从每个文件读取和分析数据。

  • 集合中的文件具有任意名称。数据存储在一个或多个文件夹中的文件中作为存储库。文件不需要具有顺序名称。

您可以根据数据或应用程序的类型创建数据存储。不同类型的数据存储包含与支持的数据类型相关的属性。万博1manbetx例如,有关MATLAB列表,请参阅下表®数据存储。有关数据存储的完整列表,请参阅选择文件格式或应用程序的数据存储

文件类型或数据类型 数据存储型
包含面向列数据的文本文件,包括CSV文件。 tabulartextdatastore.
图像文件,包括支持的格式万博1manbetxImread.如JPEG和PNG。 ImageageAtastore.
带支持的Excel的电子表格文件万博1manbetx®格式如.xlsx. SpreadsheetDatastore.
键值对数据输入或输出mapreduce. KeyValuedAtastore.
包含面向列数据的镶嵌类文件。 帕奎特adaTastore.
自定义文件格式。需要提供提供的函数来读取数据。 filedatastore.
CheckPointing的数据存储阵列。 塔塔塔雷斯

从数据存储创建和读取

使用tabulartextdatastore.从示例文件创建数据存储的函数Airlinesmall.csv.,其中包含有关个别航空公司航班的出发和到达信息。结果是一个tabulartextdatastore.目的。

ds = tabulartextdataStore('airlinesmall.csv'的)
ds = tabulartextdataStore with属性:文件:{'... \ matlab \ toolbox \ matlab \ demos \ airlinesmall.csv'}文件夹:{'... \ matlab \ toolbox \ matlab \ demos'} fileencoding:'UTF-8'lexeryfilesystroots:{} preservevariablenames:false readvariablenames:true variablenames:{'年','月','dayofmonth'...和26更多} datetimelocale:en_us文本格式属性:num honderlines:0 delimiter:','rowdelimiter:','rowdelimiter:'\ r \ r \ n'instamissing:'''遗漏value:nan高级文本格式属性:textscanformats:{'%f','%f','%f'和26更多} texttype:'char'epententcharacters:'eedd''commentstyle:''fhiteSpace:'\ b \ t'multipledelimitersasone:false属性控制通过预览,阅读,readall:selectedvariablenames:{'年','月份,'dayofmonth'和26更多}SENSELESFORMATS:{'%f','%f','%f'...和26更多} readsize:20000行outputType:'表'Rowimes:[]写入特定属性:SupportedOutpormats:[“TXT”“CSV万博1manbetx“”XLSX“”XLS“”镶木地板“”PARQ“] DEFaultOutputFormat:“TXT”

创建数据存储后,您可以在不必将其加载到内存中的情况下预览数据。您可以使用使用的兴趣的变量(列)sedicentvariablenames.属性要预览或只读这些变量。

ds.selectedvariablenames = {'deptime''depdelay'};预览(DS)
ans = 8×2表Deptime depdelay _______ ________ 642 12 1021 11 2055 20 1332 12 629 -1 1446 63 928 -2 859 -1

您可以在数据中指定表示缺失值的数据中的值。在Airlinesmall.csv.,缺少值由

ds.treatasmissing ='na';

如果数据存储区中的所有数据都适用于内存中的变量,您可以使用它使用的读物功能。

t = readall(DS);

否则,使用读取在内存中的较小子集中读取数据的数据功能。默认情况下,功能从a中读取tabulartextdatastore.一次20,000行。但是,您可以通过为该值分配给的新值来更改此值阅读财产。

ds.readsize = 15000;

在重新读取之前将数据存储重置为初始状态,使用重启功能。通过致电A内的功能尽管循环,您可以对每个数据子集执行中间计算,然后在最后聚合中间结果。此代码计算最大值DEPDELAY多变的。

重置(DS)x = [];尽管Hasdata(DS)T =读取(DS);x(end + 1)= max(t.depdelay);结尾maxdelay = max(x)
maxdelay = 1438.

如果每个单独文件中的数据适合内存,则可以指定每个调用应该读取一个完整的文件而不是特定的行数。

重置(DS)DS.ReadSize ='文件';x = [];尽管Hasdata(DS)T =读取(DS);x(end + 1)= max(t.depdelay);结尾maxdelay = max(x);

除了在数据存储区中读取数据子集外,还可以使用MAP并将函数减少到数据存储mapreduce.或使用高大的数组使用。有关更多信息,请参阅MapReduce入门高阵列用于存储空带数据

也可以看看

||||||

相关话题