exponenta event banner

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 objects - объекты параметров. Например, 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]);