主要内容

extractTimetable

从中提取数据金宝appSimulink.SimulationData.Dataset金宝appSimulink.SimulationData.Signal对象为时间表

描述

例子

TT = extractTimetable (ds)从多个元素的提取数据ds成一个时间表。输入参数ds是一个金宝appSimulink.SimulationData.Dataset金宝appSimulink.SimulationData.Signal对象。

例子

TT = extractTimetable (ds,名称=值)提取数据到一个或多个时间表根据一个或多个选项指定名称参数。例如,SignalNames参数指定的信号提取的名字ds

你可以返回数据:

  • 一个时间表,包括所有的元素包含时间序列数据,同步时间戳的联盟的信号。

  • 的时间表,每个包含数据单元阵列信号共享相同的样本。

  • 单元阵列的时间表,每个包含一个单一的信号时间序列数据。

例子

全部折叠

提取信号从一个金宝appSimulink.SimulationData.Dataset对象到一个时间表。

首先,创建一个数据集对象,并添加两个信号。计算数据信号,使用因为功能。每个信号在它自己的timeseries对象。这些信号都有一个0.1秒的时间步。

时间= 0.1 * (0:99)';ds = 金宝appSimulink.SimulationData.Dataset;element1 = 金宝appSimulink.SimulationData.Signal;element1。Name =“正弦”;element1。价值s = timeseries(sin(Time),Time); ds = addElement(ds,element1); element2 = Simulink.SimulationData.Signal; element2.Name =“余弦”;element2。价值s = timeseries(cos(Time),Time); ds = addElement(ds,element2)
ds = 金宝appSimulink.SimulationData。数据集'' with 2 elements Name BlockPath ______ _________ 1 [1x1 Signal] Sine '' 2 [1x1 Signal] Cosine '' - Use braces { } to access, modify, or add elements using index.

接下来,从中提取数据ds并把数据放入一个时间表。的时间表TT有两个变量,正弦余弦包含数据的元素ds

TT = extractTimetable (ds)
TT =100×2时间表时间正弦余弦说0秒0 1 0.099833 0.995 0.2 0.1 0.19867 0.98007 0.29552 0.95534 0.4 0.3 0.38942 0.92106 0.47943 0.87758 0.6 0.5 0.56464 0.82534 0.64422 0.76484 0.8 0.7 0.71736 0.69671 0.9秒0.78333 0.62161 1秒0.84147 0.5403 0.89121 0.4536 1.2 1.1 0.93204 0.36236 0.96356 0.2675 1.4 1.3 0.98545 0.16997 1.5秒0.99749 0.070737⋮

添加第三个信号ds时间向量有0.05秒的时间步。

Time2 = 0.05 * (0:149)”;element3 = 金宝appSimulink.SimulationData.Signal;element3。Name =“切”;element3。价值s = timeseries(tan(Time2),Time2); ds = addElement(ds,element3)
ds = 金宝appSimulink.SimulationData。数据集'' with 3 elements Name BlockPath _______ _________ 1 [1x1 Signal] Sine '' 2 [1x1 Signal] Cosine '' 3 [1x1 Signal] Tangent '' - Use braces { } to access, modify, or add elements using index.

三个元素的提取数据ds。的元素有timeseries对象的向量不匹配。因此,行乘以的向量TT是时间的结合向量的三个timeseries对象。然后,extractTimetable从三个信号函数同步数据行乘以。函数填充缺失值的行乘以正弦余弦不提供数据。

TT2 = extractTimetable (ds)
TT2 =175×3的时间表时间正弦余弦tan说________ 0秒0 1 0秒南南0.050042 - 0.1秒0.099833 0.995 0.10033 0.05 0.15秒南南0.15114 0.2秒0.19867 0.98007 0.20271 0.25秒南南0.25534 - 0.3秒0.29552 0.95534 0.30934 0.35秒南南0.36503 0.4秒0.38942 0.92106 0.42279 0.45秒南南0.48306 - 0.5秒0.47943 0.87758 0.5463 0.55秒南南0.61311 0.6秒0.56464 0.82534 0.68414 0.65秒南南0.7602 - 0.7秒0.9316 0.64422 0.76484 0.84229 0.75秒南南⋮

从信号中提取数据时间与不同的样本向量乘以。为了避免返回一个包含时间表年代,返回数据单元阵列的时间表。然后,同步输出时间表通过使用线性插值填补空白的数据。

创建一个数据集对象有三个元素。前两个元素有相同的向量和样本时间。第三个元素有一个向量和一个不同的样品时间。

Time1 = 0.1 * (0:99)”;ds = 金宝appSimulink.SimulationData.Dataset;element1 = 金宝appSimulink.SimulationData.Signal;element1。Name =“正弦”;element1。价值s = timeseries(sin(Time1),Time1); ds = addElement(ds,element1); element2 = Simulink.SimulationData.Signal; element2.Name =“余弦”;element2。价值s = timeseries(cos(Time1),Time1); ds = addElement(ds,element2); Time2 = 0.05*(0:149)'; element3 = Simulink.SimulationData.Signal; element3.Name =“切”;element3。价值s = timeseries(tan(Time2),Time2); ds = addElement(ds,element3)
ds = 金宝appSimulink.SimulationData。数据集'' with 3 elements Name BlockPath _______ _________ 1 [1x1 Signal] Sine '' 2 [1x1 Signal] Cosine '' 3 [1x1 Signal] Tangent '' - Use braces { } to access, modify, or add elements using index.

从信号中提取数据到时间表。为了避免在输出中,提取信号的样本。

TT = extractTimetable (ds, OutputFormat =“cell-by-sampletime”)
TT =1×2单元阵列{150 x1时间表}{100 x2时间表}

显示第一个时间表。的时间表包含的数据ds {3}一个示例以0.05秒的成绩。

TT {1}
ans =150×1的时间表切说0秒0时间0.05秒0.050042 0.1秒0.10033 0.15秒0.15114 0.2秒0.20271 0.25秒0.25534 0.3秒0.30934 0.35秒0.36503 0.4秒0.42279 0.45秒0.48306 0.5秒0.5463 0.55秒0.61311 0.6秒0.68414 0.65秒⋮0.9316 0.7602 0.7秒0.84229 0.75秒

显示第二个时间表。从第二个时间表包含数据的变量ds {1}ds {2}因为这两个要素ds有相同的样品时间,0.1秒。

TT {2}
ans =100×2时间表时间正弦余弦说0秒0 1 0.099833 0.995 0.2 0.1 0.19867 0.98007 0.29552 0.95534 0.4 0.3 0.38942 0.92106 0.47943 0.87758 0.6 0.5 0.56464 0.82534 0.64422 0.76484 0.8 0.7 0.71736 0.69671 0.9秒0.78333 0.62161 1秒0.84147 0.5403 0.89121 0.4536 1.2 1.1 0.93204 0.36236 0.96356 0.2675 1.4 1.3 0.98545 0.16997 1.5秒0.99749 0.070737⋮

结合这两个时间表TT成一个时间表使用时间表同步方法。避免缺口填满年代,使用线性插值作为填充方法。

TT combinedTT =同步(TT {2}, {1},“联盟”,“线性”)
combinedTT =175×3的时间表时间正弦余弦tan说________ 0秒0 1 0 0.05秒0.049917 0.9975 0.050042 0.099833 0.995 0.10033 0.15 0.1 0.14925 0.98754 0.15114 0.19867 0.98007 0.20271 0.25 0.2 0.24709 0.9677 0.25534 0.29552 0.95534 0.30934 0.35 0.3 0.34247 0.9382 0.36503 0.38942 0.92106 0.42279 0.45 0.4 0.43442 0.89932 0.48306 0.47943 0.87758 0.5463 0.55 0.5 0.52203 0.85146 0.61311 0.56464 0.82534 0.68414 0.65 0.6 0.60443 0.79509 0.7602 0.64422 0.76484 0.84229 0.75 0.7 0.68079 0.73077 0.9316⋮

一个数据集对象可以有一些包含时间表和其他元素包含的元素timeseries对象。的extractTimetable函数从两组元素提取数据并返回所有数据在一个时间表。

创建一个数据集对象的一个元素有一个时间表。

ds = 金宝appSimulink.SimulationData.Dataset;element1 = 金宝appSimulink.SimulationData.Signal;element1。Name =“TrigFuncs”;element1。价值s = timetable(seconds(0:99)',sin(0:99)',cos(0:99)',VariableNames = [“正弦”,“余弦”])
element1 = 金宝appSimulink.SimulationData。信号包:仿真软件。金宝app模拟Data Properties: Name: 'TrigFuncs' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'inport' PortIndex: 1 Values: [100x2 timetable] Methods, Superclasses
ds = addElement (ds, element1);

添加另一个元素的timeseries对象。

element2 = 金宝appSimulink.SimulationData.Signal;element2。Name =“切”;element2。价值s = timeseries(tan(0:99),0:99)
element2 = 金宝appSimulink.SimulationData。信号包:仿真软件。金宝app模拟Data Properties: Name: 'Tangent' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'inport' PortIndex: 1 Values: [1x1 timeseries] Methods, Superclasses
ds = addElement (ds, element2);

提取所有数据并返回一个时间表。

TT = extractTimetable (ds)
TT =100×3的时间表时间TrigFuncs。正弦TrigFuncs。余弦Tangent ______ ______________ ________________ ________ 0 sec 0 1 0 1 sec 0.84147 0.5403 1.5574 2 sec 0.9093 -0.41615 -2.185 3 sec 0.14112 -0.98999 -0.14255 4 sec -0.7568 -0.65364 1.1578 5 sec -0.95892 0.28366 -3.3805 6 sec -0.27942 0.96017 -0.29101 7 sec 0.65699 0.7539 0.87145 8 sec 0.98936 -0.1455 -6.7997 9 sec 0.41212 -0.91113 -0.45232 10 sec -0.54402 -0.83907 0.64836 11 sec -0.99999 0.0044257 -225.95 12 sec -0.53657 0.84385 -0.63586 13 sec 0.42017 0.90745 0.46302 14 sec 0.99061 0.13674 7.2446 15 sec 0.65029 -0.75969 -0.85599 ⋮

添加另一个元素的timeseries对象有不同的采样时间。当你提取的时间表,它有很多值填充。

element3 = 金宝appSimulink.SimulationData.Signal;element3。Name =“Mini-Tangent”;element3。价值s = timeseries(tan(0.5*(0:99)),0.5*(0:99)); ds = addElement(ds,element3); TT = extractTimetable(ds)
TT =150×4时间表时间TrigFuncs。正弦TrigFuncs。余弦Tangent Mini-Tangent _______ ______________ ________________ ________ ____________ 0 sec 0 1 0 0 0.5 sec NaN NaN NaN 0.5463 1 sec 0.84147 0.5403 1.5574 1.5574 1.5 sec NaN NaN NaN 14.101 2 sec 0.9093 -0.41615 -2.185 -2.185 2.5 sec NaN NaN NaN -0.74702 3 sec 0.14112 -0.98999 -0.14255 -0.14255 3.5 sec NaN NaN NaN 0.37459 4 sec -0.7568 -0.65364 1.1578 1.1578 4.5 sec NaN NaN NaN 4.6373 5 sec -0.95892 0.28366 -3.3805 -3.3805 5.5 sec NaN NaN NaN -0.99558 6 sec -0.27942 0.96017 -0.29101 -0.29101 6.5 sec NaN NaN NaN 0.22028 7 sec 0.65699 0.7539 0.87145 0.87145 7.5 sec NaN NaN NaN 2.706 ⋮

从元素中提取所有数据随着时间一秒钟的样本,您必须使用不同的名称参数,因为一个元素有一个时间表和其他人timeseries对象。

  • 用一秒钟从时间表中提取数据样本,使用步伐论点。指定样本的时间持续时间价值。

  • 提取的数据timeseries对象随着时间一秒钟样本,使用SampleTime论点。作为一个数值指定样品时间。

TT = extractTimetable (ds,步伐=秒(1)SampleTime = 1)
TT =100×3的时间表时间TrigFuncs。正弦TrigFuncs。余弦Tangent ______ ______________ ________________ ________ 0 sec 0 1 0 1 sec 0.84147 0.5403 1.5574 2 sec 0.9093 -0.41615 -2.185 3 sec 0.14112 -0.98999 -0.14255 4 sec -0.7568 -0.65364 1.1578 5 sec -0.95892 0.28366 -3.3805 6 sec -0.27942 0.96017 -0.29101 7 sec 0.65699 0.7539 0.87145 8 sec 0.98936 -0.1455 -6.7997 9 sec 0.41212 -0.91113 -0.45232 10 sec -0.54402 -0.83907 0.64836 11 sec -0.99999 0.0044257 -225.95 12 sec -0.53657 0.84385 -0.63586 13 sec 0.42017 0.90745 0.46302 14 sec 0.99061 0.13674 7.2446 15 sec 0.65029 -0.75969 -0.85599 ⋮

如果你只使用SampleTime参数,然后你只从元素中提取数据timeseries对象。类似地,如果您指定步伐,你只有从元素中提取数据,有一个时间表。

TT = extractTimetable (ds, SampleTime = 1)
TT =100×1的时间表时间切______月______ 0秒0 1秒1.5574 2秒-2.185 3秒-0.14255 1.1578 4秒5秒-3.3805 -0.29101 6秒7秒0.87145 -6.7997 8秒9秒-225.95 -0.45232 0.64836 10秒11秒12秒0.46302 -0.63586 13秒14秒7.2446 -0.85599⋮15秒

创建一个数据集对象与不同的时间向量元素。

Time1 = 0.1 * (0:99)”;ds = 金宝appSimulink.SimulationData.Dataset;element1 = 金宝appSimulink.SimulationData.Signal;element1。Name =“正弦”;element1。价值s = timeseries(sin(Time1),Time1); ds = addElement(ds,element1); Time2 = 0.05*(0:99)'; element2 = Simulink.SimulationData.Signal; element2.Name =“余弦”;element2。价值s = timeseries(cos(Time2),Time2); ds = addElement(ds,element2); Time3 = (0:99)'; element3 = Simulink.SimulationData.Signal; element3.Name =“切”;element3。价值s = timeseries(tan(Time3),Time3); ds = addElement(ds,element3)
ds = 金宝appSimulink.SimulationData。数据集'' with 3 elements Name BlockPath _______ _________ 1 [1x1 Signal] Sine '' 2 [1x1 Signal] Cosine '' 3 [1x1 Signal] Tangent '' - Use braces { } to access, modify, or add elements using index.

如果你有数据存储在另一个数据集对象,那么您可以使用一个元素作为模板。你可以从元素中提取数据ds的时间属性匹配模板的属性。

创建第二个数据集对象的一个元素。

ds2 = 金宝appSimulink.SimulationData.Dataset;templ = 金宝appSimulink.SimulationData.Signal;templ。Name =“模板”;templ。价值s = timeseries(randi(100,1),(0:99)'); ds2 = addElement(ds2,templ)
ds2 = 金宝appSimulink.SimulationData。数据集'' with 1 element Name BlockPath ________ _________ 1 [1x1 Signal] Template '' - Use braces { } to access, modify, or add elements using index.

返回的数据元素ds相匹配的属性ds2 {1}。模板匹配时间的第三个元素的属性ds,名叫“切”

TT = extractTimetable (ds,模板= ds2 {1})
TT =100×1的时间表时间切______月______ 0秒0 1秒1.5574 2秒-2.185 3秒-0.14255 1.1578 4秒5秒-3.3805 -0.29101 6秒7秒0.87145 -6.7997 8秒9秒-225.95 -0.45232 0.64836 10秒11秒12秒0.46302 -0.63586 13秒14秒7.2446 -0.85599⋮15秒

输入参数

全部折叠

对象包含了时间序列数据,指定为一个金宝appSimulink.SimulationData.Dataset金宝appSimulink.SimulationData.Signal对象。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:TT = extractTimetable (ds, OutputFormat =“cell-by-sampletime”)

对所有输入参数

全部折叠

时间序列数据的输出格式和分组,指定为一个表中所示的值。

价值

输出格式

“时间表”

时间表包含同步的所有信号数据,用缺失值填补。

“cell-by-signal”

单元阵列包含时间表中发现的每个信号输入。

“cell-by-sampletime”

“cell-by-timestep”

单元阵列包含每个样本中发现的时间输入的时间表。

例子:TT = extractTimetable (ds, OutputFormat =“cell-by-signal”)返回一个单元阵列,其中每个元素是一个时间表,其中包含的数据对应的元素ds

信号提取的时间表,名称指定为数组或字符串模式对象。

例子:TT = extractTimetable (ds, SignalNames = [“Sensor1”、“Sensor2”])从信号中提取数据“Sensor1”“Sensor2”

例子:TT = extractTimetable (ds, SignalNames =“传感器”+ wildcardPattern)从信号提取数据的名字开始“传感器”

模板匹配输入信号的时间特性,指定为一个timeseries对象,时间表,金宝appSimulink.SimulationData.Signal对象,或信号的名称ds

  • 如果模板或包含一个timeseries对象,然后extractTimetable它只匹配元素ds包含timeseries对象。

  • 如果模板或包含一个时间表,然后extractTimetable它只匹配元素ds包含时间表。

例子:TT = extractTimetable (ds,模板ds = {1})从所有元素提取数据ds的时间属性匹配的第一个元素的属性ds

含有参数的输入信号timeseries对象

全部折叠

样品时间,指定为一个或多个积极的数值。当你指定的值SampleTime这个函数从所有信号提取数据dstimeseries对象的向量有指定的样品时间。样品时间是解释为秒的时间间隔。

如果你提供多个样例次数值数组,然后输出一个时间表同步到联盟的所有信号timeseries对象与任何指定样本的时候,除非你指定的值OutputFormat

例子:TT = extractTimetable (ds, SampleTime = 0.5)从任何信号,提取数据timeseries对象的样品时间是0.5秒,并返回的数据在一个时间表。

例子:TT = extractTimetable (ds, SampleTime = [0.5, 1.0], OutputFormat =“cell-by-sampletime”)从信号中提取数据timeseries对象的样品时间是0.5或1.0秒,并返回一个单元阵列,其中包含两个时间表。

时间向量,作为指定datetime向量或持续时间向量。

时间表包含数据从所有信号的输出dstimeseries对象的向量的值相匹配TimeVector

例子:TT = extractTimetable (ds TimeVector =秒(0:99))从信号中提取数据timeseries对象的向量是一个数组生成0 - 99秒的采样时间1秒。

参数为输入信号,包含时间表

全部折叠

采样率,指定为一个或多个正数值。当你指定的值SampleRate这个函数从所有信号提取数据ds有时间表与指定的采样率。的采样率是解读为率赫兹(Hz)。

如果你提供多个样本率数值数组,然后输出一个时间表同步到联盟的所有信号与任何指定采样率的时间表,也除非你指定的价值OutputFormat

你可以使用这个参数结合开始时间名称-值参数。

例子:TT = extractTimetable (ds, SampleRate = 100)提取数据从任何信号,有时间表,采样率为100 Hz并返回的数据在一个时间表。

例子:TT = extractTimetable (ds, SampleRate = [100200], OutputFormat =“cell-by-sampletime”)从信号提取数据的时间表的采样率是100或200 Hz,返回一个包含两个单元阵列时间表。

例子:TT = extractTimetable (ds, SampleRate = 100,开始时间=秒(25)提取数据从任何信号,有时间表,采样率为100 Hz和信号从25秒开始。

指定为一个时间步持续时间数组中。当你指定的值步伐,这个函数提取包含数据从所有信号的时间表ds有时间表与指定的时间步。

如果你提供多个时间步骤数组中,然后输出一个时间表同步到联盟的所有信号时间表的任何指定的时间步骤,除非你指定的值OutputFormat

你可以使用这个参数结合开始时间名称-值参数。

例子:TT = extractTimetable (ds,步伐=秒(0.5))从任何信号,提取数据时间表的时间步长是0.5秒,并返回数据在一个时间表。

例子:TT = extractTimetable (ds,步伐=秒([0.5,1.0]),OutputFormat =“cell-by-sampletime”)从信号提取数据的时间表的时间步长是0.5或1.0秒,返回一个包含两个单元阵列时间表。

例子:TT = extractTimetable (ds,步伐=秒(0.5),开始时间=秒(10))从任何信号,提取数据时间表的时间步长是0.5秒,信号从10秒。

时间向量,作为指定datetime向量或持续时间向量。

输出的时间表包含数据从所有的信号ds有时间表的行乘以在向量匹配指定的向量RowTimes

例子:TT = extractTimetable (ds RowTimes =秒(0:99))从任何信号,有时间表的时间提取数据向量数组生成0 - 99秒的时间步1秒。

开始时间,指定为一个datetime标量或持续时间标量。

输出的时间表包含数据从所有的信号ds有时间表的行乘以开始值匹配指定的值开始时间

您可以使用开始时间结合的SampleRate步伐名称-值参数。

例子:TT = extractTimetable (ds,开始时间=秒(50))从任何信号提取数据,时间表从50秒开始的信号。

例子:TT = extractTimetable (ds, SampleRate = 100,开始时间=秒(25)提取数据从任何信号,有时间表,采样率为100 Hz和信号从25秒开始。

例子:TT = extractTimetable (ds,步伐=秒(0.5),开始时间=秒(10))从任何信号,提取数据时间表的时间步长是0.5秒,信号从10秒。

版本历史

介绍了R2021b