exponenta event banner

передискретизируйте (SimData)

Передискретизируйте объектный массив SimData на новый временной вектор

Синтаксис

newSimDataObj = resample(simDataObj)
newSimDataObj = resample(simDataObj, timevector)
newSimDataObj = resample(simDataObj, timevector, method)

Аргументы

newSimDataObjПередискретизируемый объектный массив SimData.
simDataObjОбъектный массив SimData, который вы хотите передискретизировать.
timevectorДействительный числовой массив моментов времени, на которые вы хотите передискретизировать данные.
method

Метод, чтобы использовать во время передискретизации. Это может быть одно из следующего:

  • interp1q Использует функцию interp1q.

  • Чтобы использовать функцию interp1, задайте один из следующих методов:

    • 'nearest'

    • 'linear'

    • 'spline'

    • 'pchip'

    • 'cubic'

    • 'v5cubic'

  • 'zoh' — указывает, что нулевой порядок содержит.

Можно также задать метод как строку с помощью двойных кавычек, таких как "pchip".

Предупреждение:

Обратите внимание на то, что метод 'cubic' изменится в будущем релизе. Используйте 'pchip' вместо этого.

Описание

newSimDataObj = resample(simDataObj) передискретизирует данные моделирования, содержавшиеся в каждом элементе объектного массива SimData simDataObj на общий временной вектор, производя новый массив SimData newSimDataObj. По умолчанию общий временной вектор взят из элемента simDataObj с самым ранним временем остановки.

newSimDataObj = resample(simDataObj, timevector) передискретизирует массив SimData simDataObj на временной вектор timevector. timevector должен или быть действительным числовым массивом или пустым массивом []. Если вы используете пустой массив, resample использует временной вектор по умолчанию, как описано выше.

newSimDataObj = resample(simDataObj, timevector, method) использует метод интерполяции, заданный в method.

Если заданный timevector будет включать моменты времени вне временного интервала, охваченного одним или несколькими объектами SimData в simDataObj, передискретизация включит экстраполяцию, и вы будете видеть предупреждение. Смотрите справку для функции MATLAB, соответствующей методу интерполяции в использовании для получения информации о том, как функция выполняет экстраполяцию.

Примеры

Симуляция и передискретизация данных

  1. Файл проекта, radiodecay.sbproj содержит модель, сохраненную в переменной под названием m1. Загрузите m1 в рабочее пространство MATLAB.

    sbioloadproject('radiodecay');
    simDataObj = sbiosimulate(m1);
    
  2. Передискретизируйте данные.

    newSimDataObj = resample(simDataObj, [1:5], 'linear');

Передискретизация данных для выполнений ансамбля

  1. Файл проекта, radiodecay.sbproj, содержит модель, сохраненную в переменной под названием m1. Загрузите m1 в рабочее пространство MATLAB.

    sbioloadproject('radiodecay');
    
  2. Измените решатель, чтобы использовать во время симуляции и выполнить запущенный ансамбль.

    csObj  = getconfigset(m1);
    set(csObj, 'SolverType', 'ssa');
    simDataObj = sbioensemblerun(m1, 10);
  3. Интерполируйте временные шаги.

    newSimDataObj = resample(simDataObj, [1:10], 'linear');
  4. Просмотрите временные шаги в массивах объектов SimData.

    newSimDataObj(1).Time
    simDataObj(1).Time

Смотрите также

sbioensemblerun, sbioensemblestats, sbiosimulate, SimData object

Функции MATLAB interp1, interp1q

Представленный в R2007b