fileEnsembleDatastore

管理整体数据的自定义文件格式

描述

一个fileEnsembleDatastore对象是一个数据存储专门用于开发状态监测算法和预见性维护使用测量数据。

一是成员数据的集合存储在文件的集合。的fileEnsembleDatastore对象指定了数据变量,自变量,在合奏和条件变量。告诉您提供函数fileEnsembleDatastore对象如何阅读每种类型的变量集合的文件。因此,您可以使用fileEnsembleDatastore管理整体数据存储在任何文件格式或配置的变量。

的数据fileEnsembleDatastore对象可以存储在任何位置由MATLAB万博1manbetx®数据存储,包括偏远地区,比如云存储使用Amazon S3™(简单存储服务),Windows Azure®Blob存储和Hadoop®分布式文件系统(HDFS™)。

对于一个详细示例说明文件整体数据存储的使用,看看用测量数据文件整体数据存储。通用数据信息集合体的预见性维护工具箱™,明白了数据集合体状态监测和预测维护

创建

描述

例子

fensemble= fileEnsembleDatastore (位置,扩展)创建一个fileEnsembleDatastore对象指向数据指定的文件路径位置有指定的文件扩展名。设置对象的属性指定函数读取或写入合奏数据存储。

fensemble= fileEnsembleDatastore (位置,扩展、名称、值)指定附加的属性使用一个或多个对象的名称-值对参数。例如,使用“ConditionVariables”, (“FaultCond”;“ID”)创建对象时指定条件变量。

输入参数

全部展开

的文件或文件夹读取集合数据,指定为一个字符串,特征向量,特征向量的字符串数组,数组或单元。如果文件不在当前文件夹,然后位置必须包含完整或相对路径。

如果你指定一个文件夹,然后fileEnsembleDatastore使用所有文件,文件夹中指定的扩展名扩展。另外,指定要包括一个显式的文件列表。您还可以使用通配符(*)时指定位置。这个字符显示所有匹配的文件或匹配的文件夹中所有文件包含在数据存储中。

支持的文件路径可以是任何位置MATLAB数据存储,包括IRI路径指向万博1manbetx远程位置,比如云存储使用Amazon S3(简单存储服务),Windows Azure Blob存储和Hadoop分布式文件系统(HDFS)。关于工作的更多信息在MATLAB与远程数据,看看使用远程数据(MATLAB)。

例子:pwd + " \ simResults "

例子:{“C: \ dir \ data \ file1.xls”,“C: \ dir \ data \ file2.xlsx”}

例子:“. . / dir /数据/ * .mat”

在数据存储文件扩展名的文件,指定为一个字符串或一个字符向量,如“.mat”. csv”

如果有多个扩展数据存储包含文件,指定它们为字符串向量,如[" xls”、“.xlsx”)。你提供的功能ReadFcnWriteToMemberFcn属性必须能够与所有指定文件类型。

属性

全部展开

函数用于读取所有选定变量的合奏,指定为你提供的处理函数。你写一个函数,指导软件如何从数据文件读取变量包含你的乐团的一员。这个函数有:

  • 两个输入,一个文件名称(字符串)和信号的名称(字符串向量)从文件加载

  • 一个输出,一个表行和表变量为每个独立的变量

当你指定ReadFcn,软件使用这个函数来读取所有选定变量的合奏,不管他们是否命名DataVariables,IndependentVariables,或ConditionVariables

例如,假设你写以下函数,readVars从你的文件,用于读取变量。这个函数创建一个表包含变量在数据文件相匹配的输入字符串向量,变量

函数data = readVars(文件名,变量)数据=表();mfile = matfile(文件名);%允许部分加载ct = 1:元素个数(变量)val = mfile。(变量{ct});如果元素个数(val) > 1 val = {val};结束数据。(变量{ct}) = val;结束结束

在MATLAB文件保存功能在当前文件夹或路径。然后,如果您创建一个fileEnsembleDatastore被称为fensemble,设置ReadFcn如下。

fensemble。ReadFcn= @readVars;

当你打电话阅读(fensemble),软件使用readVars阅读所有的变量SelectedVariables房地产整体的数据存储。你必须将此属性设置为读数据fileEnsembleDatastore成员。否则,生成一个错误。

函数写数据到上一次读书乐团的成员,指定为你提供的处理函数。你写一个函数,指示,该软件如何编写变量数据文件包含你的乐团的一员。这个函数有:

  • 两个输入,一个文件名称(字符串),和一个数据结构的数据字段名称的变量写相应的值,其值

  • 没有输出

例如,假设你写以下函数,writeNewData写数据到你的文件。这个函数将输入数据结构写入指定的数据文件。

函数writeNewData(文件名,数据)保存(文件名,“添加”,“结构”,“structData”);结束

商店writeNewData在MATLAB文件在当前文件夹或路径。然后,如果您创建一个fileEnsembleDatastore被称为fensemble,设置WriteToMemberFcn如下:

fensemble.WriteToMemberFcn= @writeNewData;

当你打电话给writeToLastMemberRead命令fensemble,软件使用writeNewData将新数据添加到数据文件的读取乐团成员。你必须设置该属性添加数据fileEnsembleDatastore成员。否则,writeToLastMemberRead生成一个错误。

系综中变量的数据,指定为字符串数组。数据变量是乐团的成员的主要内容。数据变量可以包括测量数据或派生数据分析和发展的预见性维护算法。例如,您的数据变量可能包括测量或模拟振动等振动信号和派生值平均值或峰值振动频率。在实践中,您的数据变量,自变量,条件变量都是不同类型的变量。

您还可以指定DataVariables使用单元阵列的特征向量,如{“振动”;“转速计”},但变量名总是存储为字符串数组,(“振动”;“转速器”)。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。

独立变量的合奏,指定为字符串数组。你通常使用独立变量集合的成员。例子是时间戳,操作数小时,或行驶里程。将此属性设置为变量的名字在你的合奏。在实践中,您的数据变量,自变量,条件变量都是不同类型的变量。

您还可以指定IndependentVariables使用单元阵列的特征向量,如{“时间”,“年龄”},但变量名总是存储为字符串数组,(“时间”,“年龄”)。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。

条件变量的合奏,指定为字符串数组。使用条件变量标签在乐团成员根据故障状态或其他操作条件下,乐团成员收集。在实践中,您的数据变量,自变量,条件变量都是不同类型的变量。

您还可以指定ConditionVariables使用单元阵列的特征向量,如{“GearFault”;“温度”},但变量名总是存储为字符串数组,(“GearFault”;“温度”)。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。

从整体读取变量,指定为一个字符串数组。使用这个属性来指定哪些变量提取时使用MATLAB工作空间命令来读取数据从当前乐团成员。返回一个表行包含一个表为每个名称中指定的变量SelectedVariables。例如,假设你有一个乐团,fensemble包含六个变量,你要读的只有两人,振动FaultState。设置SelectedVariables财产和调用:

fensemble.SelectedVariables= [“振动”;“FaultState”];data =阅读(fensemble)

SelectedVariables可以任意组合的变量DataVariables,ConditionVariables,IndependentVariables属性。如果SelectedVariables是空的,生成一个错误。

您可以指定SelectedVariables使用单元阵列的特征向量,如{“振动”;“转速计”},但变量名总是存储为字符串数组,(“振动”;“转速器”)。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。

数量的成员从整体数据存储,读取指定为一个正整数,小于在乐团成员的总数。默认情况下,命令返回一行表包含数据从一个乐团成员。读取数据从多个成员在一个操作时,将此属性设置为一个整数值大于1。例如,如果ReadSize= 3,然后返回一个三横列表每行包含数据从不同的乐团成员。如果少于ReadSize成员都是未读的返回一个表和尽可能多的行有剩下的成员。

整体数据存储属性LastMemberRead包含所有文件的名称在最近的阅读操作。因此,例如,如果ReadSize= 3,然后一个操作集LastMemberRead一个字符串向量包含三个文件的名字。

当你使用writeToLastMemberRead,指定数据写一个表的行数等于ReadSize。的writeToLastMemberRead命令更新指定的成员LastMemberRead每个指定文件,写一个表行。

改变了ReadSize财产也重置合奏的未读状态。例如,假设您读一些乐团成员一次(ReadSize= 1),然后改变ReadSize为3。下一个操作返回的数据前三个乐团成员。

这个属性是只读的。

乐团的成员数量,指定为一个正整数。

这个属性是只读的。

文件名最后的读入MATLAB工作区,乐团成员指定为一个字符串。当你使用命令从一个数据存储,读取数据的软件决定哪个乐团成员阅读下,并从相应的读取数据文件。的LastMemberRead属性包含最近的路径读取文件。整体数据存储时尚未阅读,或被重置,LastMemberRead是一个空字符串。

当你打电话writeToLastMemberRead添加数据整体数据存储,这个函数写入文件中指定LastMemberRead

默认情况下,读取数据时(从一个乐团成员ReadSize房地产的整体数据存储时1)。ReadSize> 1,LastMemberRead是一个字符串数组,其中包含所有文件的路径看在最近吗操作。

这个属性是只读的。

整体数据存储的文件列表,指定为一个列向量长度的字符串NumMembers。每个条目包含在数据存储到一个文件的完整路径。文件的顺序命令读取乐团成员。

例子:[" C: \ \ Data_01.csv数据”;“C: \ Data \ Data_02.csv”;“C: \ \ Data_03.csv数据”)

对象的功能

writeToLastMemberRead功能是专门用于预测维修工具箱合奏数据。其他功能,例如重置hasdata使用,是相同的数据存储在MATLAB对象。划分一个数据存储,使用分区(n, ds指数)语法的分区函数。

从一个数据存储读取数据成员
writeToLastMemberRead 写数据到一个数据存储的成员
重置 数据存储重置为初始状态
hasdata 确定数据可用来读
进步 确定有多少数据被读取
numpartitions 数量的数据存储分区
分区 分区数据存储
创建高数组
isPartitionable 确定是否可分区的数据存储
isShuffleable 确定是否shuffleable数据存储

例子

全部折叠

创建一个文件集合数据存储为数据存储在MATLAB®文件,并配置功能告诉软件如何读取和写入数据存储。

对于本例,您有两个数据文件包含健康从轴承系统运行数据,baseline_01.matbaseline_02.mat。你也有三个数据文件包含错误的数据从相同的系统,FaultData_01.mat,FaultData_02.mat,FaultData_03.mat

解压缩fileEnsData.zip%提取压缩文件位置= pwd;扩展=“.mat”;fensemble = fileEnsembleDatastore(位置、扩展);

与系综中的数据之前,您必须创建函数告诉软件如何处理数据文件读取变量到MATLAB工作区和回写数据文件。将这些函数保存到一个位置的文件路径。对于这个示例,使用下面提供的功能:

  • readBearingData——提取请求从一个结构变量,轴承和其他变量存储在文件中。这个函数还解析文件名的故障状态数据。函数返回一个表包含一个表行变量为每个请求的变量。

  • writeBearingData——结构,写出其变量数据文件存储作为单独的变量。

目录(fullfile (matlabroot,“例子”,“predmaint”,“主要”))%确保函数的路径fensemble。ReadFcn= @readBearingData; fensemble.WriteToMemberFcn = @writeBearingData;

最后,设置属性的整体识别数据变量,条件变量,变量选择阅读。对于这个示例,数据文件中的变量gs,,负载,。假设你只需要读错标签,gs,。这些变量设置为选中的变量。

fensemble。DataVariables = [“gs”;“老”;“负载”;“速度”];fensemble。ConditionVariables = [“标签”];fensemble.SelectedVariables= [“标签”;“gs”;“老”];

检查合奏。函数和变量名称分配给适当的属性。

fensemble
fensemble = fileEnsembleDatastore属性:ReadFcn: @readBearingData WriteToMemberFcn: @writeBearingData DataVariables: [4 x1字符串]IndependentVariables: [0 x0字符串]ConditionVariables:“标签”SelectedVariables: [3 x1字符串]ReadSize: 1 NumMembers: 5 LastMemberRead: [0 x0字符串)文件:[5 x1字符串)

这些函数分配告诉writeToLastMemberRead命令如何与数据文件组成。例如,当你调用命令,它使用readBearingData阅读所有的变量fensemble.SelectedVariables。更详细的例子,请参阅用测量数据文件整体数据存储

rmpath (fullfile (matlabroot,“例子”,“predmaint”,“主要”))%重置路径

创建一个文件集合数据存储在MATLAB文件的数据存储,并配置功能告诉软件如何读取和写入数据存储。(整体数据存储配置文件的详细信息,请参阅用测量数据文件整体数据存储)。

%创建指向数据文件来完成整体数据存储在当前文件夹解压缩fileEnsData.zip%提取压缩文件位置= pwd;扩展=“.mat”;fensemble = fileEnsembleDatastore(位置、扩展);%指定数据和条件变量fensemble。DataVariables = [“gs”;“老”;“负载”;“速度”];fensemble。ConditionVariables =“标签”;%为读写可变数据配置与功能目录(fullfile (matlabroot,“例子”,“predmaint”,“主要”))%确保函数的路径fensemble。ReadFcn= @readBearingData; fensemble.WriteToMemberFcn = @writeBearingData;

功能告诉writeToLastMemberRead命令如何与数据文件组成。因此,当你调用命令,它使用readBearingData阅读所有的变量fensemble.SelectedVariables。对于这个示例,readBearingData提取请求从一个结构变量,轴承和其他变量存储在文件中。它还解析文件名的故障状态数据。

指定变量的读,读他们的第一个成员。

fensemble.SelectedVariables= [“gs”;“负载”;“标签”];data =阅读(fensemble)
data =1×3表标签gs负载________售予__“错误的”{5000 x1双}0

现在,您可以根据需要处理的数据成员。对于这个示例,计算信号的平均值存储在变量中gs。从返回的表中提取数据

gsdata = data.gs {1};gsmean =意味着(gsdata);

你可以写均值gsmean回数据文件作为一个新的变量。要做到这一点,首先扩展的列表数据变量套装包括一个变量的新值。所谓的新变量gsMean

fensemble。DataVariables = [fensemble.DataVariables;“gsMean”]
fensemble = fileEnsembleDatastore属性:ReadFcn: @readBearingData WriteToMemberFcn: @writeBearingData DataVariables: x1字符串[5]IndependentVariables: [0 x0字符串]ConditionVariables:“标签”SelectedVariables: [3 x1字符串]ReadSize: 1 NumMembers: 5 LastMemberRead:“/ tmp / Bdoc20a_1326390_165224 / tp7b0cac28 / predmaint-ex34165887 / FaultData_01。垫”文件(5 x1字符串):

接下来,编写派生的平均值相对应的文件上一次读书乐团成员。(见数据集合体状态监测和预测维护)。当你打电话writeToLastMemberRead,它将数据转换为结构和调用fensemble.WriteToMemberFcn写数据到文件。

writeToLastMemberRead (fensemble“gsMean”,gsmean);

调用再次提出了合奏last-read-member指示器到下一个文件和从文件中读取数据。

data =阅读(fensemble)
data =1×3表标签gs负载________售予__“错误的”{5000 x1双}50

你可以确认这个数据是通过检查从不同的成员负载表中的变量。在这里,它的值是50,而在前面读的成员,这是0。

你可以重复处理步骤来计算,附加的意思是乐团成员。在实践中,它是更有用的自动化过程,阅读、加工、写入数据。为此,重置合奏状态没有数据被读取。然后循环通过系综和执行读取、过程,并为每个成员编写步骤。

重置(fensemble)hasdata (fensemble)数据=阅读(fensemble);gsdata = data.gs {1};gsmean =意味着(gsdata);writeToLastMemberRead (fensemble“gsMean”,gsmean);结束

hasdata命令返回当乐团的每个成员被阅读。现在,在乐团包括每个数据文件gsMean变量的数据gs在该文件中。您可以使用类似的技术,从整体循环提取和处理数据文件当你开发一个预见性维护算法。为例详细说明文件的使用整体数据存储在算法开发过程中,明白了滚动轴承故障诊断。示例还展示了如何使用并行计算工具箱™加速处理大数据的集合体。

确认派生变量存在于整体数据存储的文件,读它从第一和第二乐团成员。为此,再次重置合奏,新变量添加到选定的变量。计算派生值之后,在实践中,它可以是有用的只读这些值没有重读未加工的数据,这可以在内存中重要的空间。对于这个示例,选择读变量包括新变量,gsMean,但不包括未加工的数据,gs

重置(fensemble) fensemble。SelectedVariables = [“标签”;“负载”;“gsMean”];data1 =阅读(fensemble)
data1 =1×3表标签负载gsMean ________ ________“错误的”0 -0.22648
data2 =阅读(fensemble)
data2 =1×3表标签负载gsMean ________ ________“错误的”50 -0.22937
rmpath (fullfile (matlabroot,“例子”,“predmaint”,“主要”))%重置路径

兼容性的考虑

全部展开

不推荐在R2018b开始

介绍了R2018a