开始使用数据存储
什么是数据存储?
数据存储是一个对象用于读取一个文件或一组文件或数据。数据存储作为存储库相同的结构和格式的数据。例如,数据存储中的每个文件必须包含相同类型的数据(如数字或文本)出现在相同的顺序,和同样的分隔符分开。
一个数据存储时是有用的:
集合中的每个文件可能太大,适合在内存中。数据存储可以从每个文件读取和分析数据在较小的部分装入内存。
文件集合的任意名称。一个数据存储作为库文件在一个或多个文件夹。不需要有顺序的名称的文件。
您可以创建一个数据存储基于类型的数据或应用程序。不同类型的数据存储包含属性相关的数据类型,他们的支持。金宝app例如,参见下表为MATLAB的列表®数据存储。数据存储的完整列表,请参阅选择数据存储文件格式或应用程序。
类型的文件或数据 | 数据存储类型 |
---|---|
文本文件包含用于数据,包括CSV文件。 | TabularTextDatastore |
图像文件,包括所支持的格式金宝appimread 如JPEG和PNG。 |
ImageDatastore |
与一个受支持的Excel电子表格文件金宝app®格式如.xlsx 。 |
SpreadsheetDatastore |
键-值对输入或输出的数据mapreduce 。 |
KeyValueDatastore |
镶木地板文件包含用于数据。 | ParquetDatastore |
自定义文件格式。需要提供函数读取数据。 | FileDatastore |
数据存储的检查点高 数组。 |
TallDatastore |
从数据存储中创建和阅读
使用tabularTextDatastore
函数创建一个数据存储从示例文件airlinesmall.csv
,其中包含出发和到达各个航班的信息。结果是一个TabularTextDatastore
对象。
ds = tabularTextDatastore (“airlinesmall.csv”)
ds = TabularTextDatastore属性:文件:{“…\ matlab \ matlab工具箱\ \ demo \ airlinesmall。csv”}文件夹:{”……matlab \ matlab工具箱\ \ demo \”} FileEncoding:“utf - 8”AlternateFileSystemRoots: {} PreserveVariableNames:假ReadVariableNames:真VariableNames:{“年”、“月”、“DayofMonth”……和26}DatetimeLocale: en_US文本格式属性:NumHeaderLines: 0分隔符:”、“RowDelimiter: \ r \ n TreatAsMissing:”MissingValue:南高级文本格式属性:TextscanFormats: {% f ', ' % f ', ' % f '……和26}TextType:“字符”ExponentCharacters: eEdD CommentStyle:”空白:“\ b \ t”MultipleDelimitersAsOne:假控制表的属性返回的预览,阅读,readall: SelectedVariableNames:{“年”、“月”、“DayofMonth”……和26}SelectedFormats: {% f ', ' % f ', ' % f '……和26}ReadSize: 20000行OutputType:“表”RowTimes:[]编写特殊属性:SupportedOutputFormats:[“三种”“csv”“xlsx”“xl金宝apps”“铺”“parq”] DefaultOutputFormat:“三”
在创建数据存储之后,您可以预览数据而无需全部加载到内存中。您可以指定感兴趣的变量(列)SelectedVariableNames
财产预览或只读这些变量。
ds。SelectedVariableNames = {“DepTime”,“DepDelay”};预览(ds)
ans = 8×2表DepTime DepDelay _________ ________ 642 1021 2055 859 1332 629 1 1446 63 928 2 1
您可以指定数据的值,它代表的缺失值。在airlinesmall.csv
,缺失值为代表NA
。
ds。TreatAsMissing =“NA”;
如果所有的数据存储中的数据装入内存变量的兴趣,你可以阅读它使用readall
函数。
T = readall (ds);
否则,读取数据在较小的子集,装入内存,使用读
函数。默认情况下,读
函数读取从TabularTextDatastore
20000行。但是,你可以改变这个值通过指定一个新值ReadSize
财产。
ds。ReadSize = 15000;
重置初始状态的数据存储在重读之前,使用重置
函数。通过调用读
函数在一个而
循环,您可以在每个子集执行中间计算的数据,然后最后总中间结果。这段代码计算的最大价值DepDelay
变量。
重置(ds) X = [];而hasdata (ds) T =阅读(ds);X(结束+ 1)= max (T.DepDelay);结束maxDelay = max (X)
maxDelay = 1438
如果数据在每个文件会在内存中,您可以指定每个调用读
应该读一个完整的文件,而不是一个特定的行数。
重置(ds) ds。ReadSize =“文件”;X = [];而hasdata (ds) T =阅读(ds);X(结束+ 1)= max (T.DepDelay);结束maxDelay = max (X);
除了阅读数据存储中的数据的子集,您可以应用数据存储使用map和reduce函数mapreduce
或者创建一个高阵列使用高
。有关更多信息,请参见开始使用MapReduce和高内存不足数据数组。
另请参阅
tabularTextDatastore
|imageDatastore
|spreadsheetDatastore
|KeyValueDatastore
|fileDatastore
|高
|mapreduce