文件整体数据存储使用文本文件中的数据
预见性维护算法设计中,你经常有系统数据在一个纯文本格式,如逗号分隔值(CSV)。这个例子显示了如何创建和使用fileEnsembleDatastore
对象来管理一个在这样的格式存储的数据。
整体数据
提取压缩数据的例子。
解压缩fleetdata.zip%提取压缩文件
乐团由十个文件,fleetdata_01。txt,……,fleetdata_10.txt
包含数据,每个车队的一辆车。每个文件包含五个标记列的数据,对应于每日阅读以下值:
在一天结束的时候,里程表读数英里
燃料消耗的那一天,在加仑
最高转速
中最高,发动机温度摄氏度
光引擎状态在一天结束的时候(0 =,1 =)
每个文件包含数据约80至120天的操作。这个示例的数据集是人为制造的,不符合真正的舰队数据。
配置整体数据存储
创建一个fileEnsembleDatastore
对象来管理数据。
位置= pwd;扩展=' . txt ';fensemble = fileEnsembleDatastore(位置、扩展);
配置整体数据存储使用提供的函数readFleetData.m
从文件读取数据。
fensemble。ReadFcn = @readFleetData;
因为没有标记的数据文件中的列,这个函数readFleetData
附加一个预定义的标签对应的数据。配置整体数据变量匹配中定义的标签readFleetData
。
fensemble。DataVariables = [“里程表”;“FuelConsump”;“MaxRPM”;“MaxTemp”;“EngineLight”];
这个函数readFleetData
还解析文件名返回ID的车从数据的收集,一个从1到10的数字。这个ID是一套独立的变量。
fensemble。IndependentVariables =“ID”;
指定所有数据变量和自变量选择变量整体阅读的数据存储。
fensemble。SelectedVariables = [fensemble.IndependentVariables; fensemble.DataVariables];fensemble
fensemble = fileEnsembleDatastore属性:ReadFcn: @readFleetData WriteToMemberFcn: [] DataVariables: x1字符串[5]IndependentVariables:“ID”ConditionVariables: [0 x0字符串]SelectedVariables: x1字符串[6]ReadSize: 1 NumMembers: 10 LastMemberRead: [0 x0字符串)文件:[10 x1字符串)
读取整体数据
当你打电话读
整体数据存储,它使用readFleetData
阅读所选变量从第一个乐团成员。
data1 =阅读(fensemble)
data1 =1×6表ID里程表FuelConsump MaxRPM MaxTemp EngineLight __ _________________ _________________ _________________ _________________ _________________ 1 x1时间表}{120}{120 x1时间表{120 x1时间表}{120 x1时间表}{120}x1的时间表
检查和情节里程表数据。
odo1 = data1.Odometer {1}
odo1 =120×1的时间表时间Var1 ______ 0天180.04 535.19 396.01 266.76 1天2天3天4天7天574.31 5天714.82 6天714.82 1303.4 1213.4 821.44 1030.5 8天9天10天11天1416.9 12天1513.5 13天14天1513.5 1697.1 1804.6⋮15天
情节(odo1.Time odo1.Var1)
计算的平均油耗这个船队的成员。这个值是里程表阅读最后一天,除以总燃料消耗。
fuelConsump1 = data1.FuelConsump {1} .Var1;totalConsump1 =总和(fuelConsump1);totalMiles1 = odo1.Var1(结束);mpg1 = totalMiles1 / totalConsump1
mpg1 = 22.3086
从所有的乐团成员批量转换数据
如果你叫读
再次,它读取数据从下一个乐团成员和进步LastMemberRead
的属性fensemble
反映的文件名。你可以重复处理步骤来计算成员的平均油耗。在实践中,它是更有用的自动化过程,阅读和处理数据。为此,重置合奏数据存储状态没有数据被读取。然后循环通过系综和执行读取和处理步骤为每个成员,返回一个表,其中包含每个车的ID和平均油耗。(如果你有并行计算工具箱™,你可以用它来加快处理大数据的集合体。)
重置(fensemble) mpgData = 0 (10, 2);% preallocate数组10乐团成员ct = 1;而hasdata (fensemble)数据=阅读(fensemble);辛癸酸甘油酯= data.Odometer {1} .Var1;fuelConsump = data.FuelConsump {1} .Var1;totalConsump =总和(fuelConsump);英里/加仑=辛癸酸甘油酯(结束)/ totalConsump1;ID = data.ID;:mpgData (ct) = (ID、mpg);ct = ct + 1;结束mpgTable = array2table (mpgData,“VariableNames”,{“ID”,“英里”})
mpgTable =10×2表ID mpg __ ______ 1 18.848 27.464 20.816 19.327 22.309 - 2 3 4 5 6 26.37 17.149 27.284 22.517 27.018 7 8 9 10