主要内容

本页采用了机器翻译。点击此处可查看英文原文。

merge (iddata)

将数据集合并为 iddata 对象

语法

dat = merge(dat1,dat2,....,datN)

说明

datdat1, ...,datN 中的数据集整合为一个包含多个 experimentsiddata 对象。dat 中的实验数量将是 datk 中实验数量的总和。要允许合并,必须满足以下若干条件:

  • 所有 datk 必须具有相同数量的输入通道,且 InputNames 必须相同。

  • 所有 datk 必须具有相同数量的输出通道,且 OutputNames 必须相同。若某次实验中缺少某些输入或输出通道,可使用 NaN 向量进行替代以符合这些规则。

  • 如果 ExperimentNamesdatk 被指定为非默认值(如 'Exp1''Exp2' 等),则它们必须全部唯一。若默认名称存在重叠,则会进行修改,使得 dat 将拥有一个由唯一 ExperimentNames 组成的列表。

采样间隔、观测次数以及输入属性(Period, InterSample)在不同实验中可能存在差异。

您可以使用命令 getexp 检索各个实验。您还可以通过添加第四个索引进行子引用来检索它们。

dat1 = dat(:,:,:,ExperimentNumber)

dat1 = dat(:,:,:,ExperimentName)

将多个实验存储为单个 iddata 对象,对于处理在不同时间点收集的实验数据,或当数据集被拆分以剔除"不良"数据部分时,会非常有用。所有工具箱例程均支持多实验数据。

示例

全部折叠

移除数据中的不良部分,以便在不让不良数据破坏估计的情况下进行建模。

load iddemo8data;
plot(dat);

Figure contains 2 axes objects. Axes object 1 with title y1 contains an object of type line. This object represents dat. Axes object 2 with title u1 contains an object of type line. This object represents dat.

在样本 250 至 280 附近以及样本 600 至 650 之间检测到数据异常部分。剔除这些不良部分以形成多实验数据集,并合并数据。

dat = merge(dat(1:250),dat(281:600),dat(651:1000));

你可以使用前两个实验来估计模型,并使用第三个实验来验证模型。

dat_est = getexp(dat,[1,2]);
m = ssest(dat_est,2);
dat_val = getexp(dat,3);

版本历史记录

在 R2006a 之前推出