主要内容

文件整体数据存储使用文本文件中的数据

预见性维护算法设计中,你经常有系统数据在一个纯文本格式,如逗号分隔值(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

另请参阅

|

相关的话题