数据存储是用于读取单个文件或文件或数据集合的对象。数据存储充当具有相同结构和格式的数据的存储库。例如,数据存储中的每个文件必须包含以相同顺序出现的相同类型(例如数字或文本)的数据,并由相同的分隔符分隔。
数据存储在以下情况下是有用的:
集合中的每个文件可能太大而无法放入内存中。数据存储允许您读取和分析每个文件中较小的部分的数据,这些部分确实适合内存。
集合中的文件具有任意名称。数据存储充当一个或多个文件夹中的文件的存储库。文件不需要有顺序的名称。
您可以为该表中的数据类型创建数据存储。每种类型的数据都由不同类型的数据存储支持。万博1manbetx不同类型的数据存储包含与它们所支持的数据类型相关的属性。万博1manbetx
文件或数据的类型 | 数据存储类型 |
---|---|
包含面向列的数据的文本文件,包括CSV文件。 | TabularTextDatastore |
图像文件,包括支持的格式万博1manbetximread 例如JPEG和PNG。 |
ImageDatastore |
支持Excel的电子表格文件万博1manbetx®格式如.xlsx . |
SpreadsheetDatastore |
的输入或输出的键值对数据mapreduce . |
KeyValueDatastore |
自定义文件格式。需要一个提供的函数来读取数据。 | FileDatastore |
数据存储的检查点高 数组。 |
TallDatastore |
关系数据库中的数据集合。需要数据库工具箱™。 | DatabaseDatastore |
与Simulink一起使用的模拟输入和输出数据万博1manbetx®模型。 | SimulationDatastore |
用于收集MDF文件的数据存储,用于车辆网络工具箱™。 | MDFDatastore |
用于收集MDF文件的数据存储,用于Powertrain Blockset™。 | MDFDatastore |
用于预处理训练图像的数据存储。需要神经网络工具箱™。 | augmentedImageDatastore |
数据存储来训练图像去噪深度神经网络。需要图像处理工具箱™和神经网络工具箱。 | denoisingImageDatastore |
用于像素标签数据的数据存储。需要计算机视觉系统工具箱™。 | pixelLabelDatastore |
用于语义分割网络的数据存储。需要计算机视觉系统工具箱。 | pixelLabelImageDatastore |
管理模拟集成数据的数据存储。需要预测性维护工具箱™。 | simulationEnsembleDatastore |
以自定义文件格式管理集成数据的数据存储。需要预测性维护工具箱。 | fileEnsembleDatastore |
使用tabularTextDatastore
函数从示例文件创建数据存储airlinesmall.csv
,其中包含有关个别航班的出发和到达信息。结果是TabularTextDatastore
对象。
ds = tabularTextDatastore (“airlinesmall.csv”)
FileEncoding: 'UTF-8' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…} Text Format Properties: NumHeaderLines: 0 Delimiter: ',' RowDelimiter: '\r\n' TreatAsMissing: " MissingValue: NaN Advanced Text Format Properties: TextscanFormats: {'%f', '%f', '%f'…和26 more} ExponentCharacters: 'eEdD' CommentStyle: " Whitespace: ' \b\t' MultipleDelimitersAsOne: false属性,控制由preview, read, readall返回的表:SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…和26}SelectedFormats: {% f ', ' % f ', ' % f '……} ReadSize: 20000行
创建数据存储后,您可以预览数据,而不必将其全部加载到内存中。属性指定感兴趣的变量(列)SelectedVariableNames
属性来预览或只读这些变量。
ds。SelectedVariableNames = {“DepTime”,“DepDelay”};预览(ds)
ans = DepTime DepDelay _______ ________ 642 12 1021 1 2055 20 1332 12 629 -1 1446 63 928 -2 859 -1
您可以在数据中指定表示缺失值的值。在airlinesmall.csv
,缺失值用NA
.
ds。TreatAsMissing =“NA”;
如果感兴趣的变量的数据存储中的所有数据都适合内存,则可以使用readall
函数。
T = readall (ds);
否则,使用读
函数。默认情况下,读
函数从TabularTextDatastore
一次两万行。但是,可以通过将新值赋给ReadSize
财产。
ds。ReadSize = 15000;
属性将数据存储重置为初始状态,然后重新读取重置
函数。通过调用读
函数在一个而
循环时,可以对每个数据子集执行中间计算,然后在最后聚合中间结果。的最大值DepDelay
变量。
reset(ds) X = [];而hasdata(ds) T = read(ds);X(结束+ 1)= max (T.DepDelay);结束maxDelay = max (X)
maxDelay = 1438
如果每个单独文件中的数据适合内存,则可以指定每个调用读
应该读取一个完整的文件,而不是特定的行数。
重置(ds) ds。ReadSize =“文件”;X = [];而hasdata(ds) T = read(ds);X(结束+ 1)= max (T.DepDelay);结束maxDelay = max (X);
除了读取数据存储中的数据子集外,还可以使用以下方法对数据存储应用map和reduce函数mapreduce
.有关MapReduce在MATLAB中的更多信息®,请参阅开始使用MapReduce.
FileDatastore
|ImageDatastore
|KeyValueDatastore
|SpreadsheetDatastore
|数据存储
|mapreduce
|tabularTextDatastore
|高