使用数据存储入门

什么是数据存储?

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

数据存储是有用的:

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

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

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

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

从数据存储创建和读取

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

ds = tabulartextdataStore('airlinesmall.csv'
DS = tabulartextdataStore具有属性:文件:{'... \ matlab \ toolbox \ matlab \ demos \ airlinesmall.csv'}文件夹:{'... \ matlab \ toolbox \ matlab \ demos'} fileencoding:'UTF-8'extractfilesystemroots:{} preservevariablenames:false readvariablenames:true variablenames:{'年','月','dayofmonth'...和26更多} datetimelocale:en_us text formature属性:num honderlines:0 delimiter:','rowdelimiter:'\ r \ r \ n'instamissing:'''遗漏值:nan高级文本格式属性:textscanformats:{'%f','%f','%f'和26更多} texttype:'char'epentonentcharacters:'eedd''commentstyle:''fhiteSpace:'\ b \ t'multipledelimitersasone:虚假属性控制通过预览,read,readall:selectedvariablenames:{'年','月','dayofmonth'和26更多}SENSELESFORMATS:{'%f','%f','%f'和26更多} readsize:20000行OutputType:'table'Rowimes:[]写入特定属性:SupportedOutputFormats:[“TXT”“CSV万博1manbetx“”XLSX“”XLS“”镶木地板“”Parq“] DefaultOutputFormat:“TXT”

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

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

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

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);

除了在数据存储区中读取数据子集外,您还可以使用地图并将函数缩小到数据存储Mapreduce.或使用高大的数组使用高的。有关更多信息,请参阅MapReduce入门高存储器数据的阵列

也可以看看

||||||

相关话题