merge (iddata)

Объедините наборы данных в объект iddata

Синтаксис

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

Описание

dat собирает наборы данных в dat1, ...,datN в один iddata объект, с несколькими экспериментами. Количество экспериментов в dat будет сумма количества экспериментов в datk. Для того чтобы слияние было разрешено, необходимо выполнить ряд условий:

  • Все datk должны иметь одинаковое количество входных каналов и InputNames должно быть то же самое.

  • Все datk должны иметь одинаковое количество выходных каналов и OutputNames должно быть то же самое. Если в одном эксперименте отсутствует какой-либо входной или выходной канал, он может быть заменен вектором NaNs, чтобы соответствовать этим правилам.

  • Если на ExperimentNames от datk были заданы как нечто иное, чем значение по умолчанию 'Exp1', 'Exp2'и т.д., все они должны быть уникальными. Если имена по умолчанию перекрываются, они изменяются так, что dat будет иметь список уникальных ExperimentNames.

Интервалы дискретизации, количество наблюдений и входные свойства (Period, InterSample) может отличаться в различных экспериментах.

Извлечь отдельные эксперименты можно с помощью команды getexp. Можно также извлечь их путем субреференции с четвертым индексом.

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

или

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

Хранение нескольких экспериментов как одного iddata объект может быть очень полезным для обработки экспериментальных данных, которые были собраны в различных случаях, или когда набор данных был разделен, чтобы удалить «плохие » фрагменты данных. Все стандартные программы тулбокса принимают данные нескольких экспериментов.

Примеры

свернуть все

Удалите плохие фрагменты данных для оценки моделей без плохих данных, уничтожающих оценку.

load iddemo8;
plot(dat);

Figure contains 2 axes. Axes 1 with title y1 contains an object of type line. This object represents dat. Axes 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