setDistribution

Класс: sdo. ParameterSpace
Пакет: sdo

Установите распределение параметра в sdo.ParameterSpace объект

Синтаксис

ps = setDistribution(ps0,p,pdist)

Описание

ps = setDistribution(ps0,p,pdist) обновляет ParameterDistributions свойство sdo.ParameterSpace объект, ps0, для заданных параметров, p, и возвращает обновленный объект, ps.

Входные параметры

ps0

Пространство параметров, заданное как sdo.ParameterSpace объект.

p

Параметры, распределения которых должны быть обновлены, задаются как одно из следующего:

  • Вектор param.Continuous Объекты - Объекты параметра. Для примера, p = sdo.getParameterFromModel('sdoHydraulicCylinder','Ac').

  • Имя параметра, заданное как вектор символов или строка. Для примера, 'Ac'.

pdist

Распределение вероятностей для параметров модели, заданное как вектор одномерных объектов распределения вероятностей.

  • Если pdist - тот же размер, что и p, программное обеспечение задает каждую запись pdist как распределение вероятностей соответствующего параметра в p.

  • Если pdist содержит только одно распределение, программное обеспечение задает этот объект как распределение вероятностей для всех параметров в p.

Используйте makedist команда для создания одномерного объекта распределения вероятностей. Для примера, makedist('Normal','mu',10,'sigma',3).

Проверить, pdist ли - одномерный объект распределения, запуск isa(pdist,'prob.UnivariateDistribution').

Выходные аргументы

ps

Обновленное пространство параметров, возвращенное как sdo.ParameterSpace объект.

Примеры

расширить все

Создайте sdo.ParameterSpace объект для Ac и K параметры sdoHydraulicCylinder модель.

load_system('sdoHydraulicCylinder');
p = sdo.getParameterFromModel('sdoHydraulicCylinder',{'Ac','K'});
ps = sdo.ParameterSpace(p);

По умолчанию равномерное распределение задается для всех параметров в p.

ps.ParameterDistributions
ans=1×2 object
  1x2 UniformDistribution array

Задайте нормальное распределение для Ac и K.

pAcdist = makedist('Normal','mu',p(1).Value,'sigma',1);
pKdist = makedist('Normal','mu',p(2).Value,'sigma',3);
ps = setDistribution(ps,p,[pAcdist;pKdist]);