Распространенный способ сгенерировать массив состоит в том, чтобы выбрать неопределенные элементы неопределенного объекта. Этот пример показывает, как сгенерировать массивы путем взятия случайных выборок umat
неопределенная матрица, которая имеет два неопределенных элемента. (Чтобы сгенерировать массивы путем выборки в определенных значениях, используйте usubs
.)
Создайте неопределенную матрицу.
a = ureal('a',4); b = ureal('b',2); M = [a b;b*b a/b;1-b 1+a*b]
M = Uncertain matrix with 3 rows and 2 columns. The uncertainty consists of the following blocks: a: Uncertain real, nominal = 4, variability = [-1,1], 3 occurrences b: Uncertain real, nominal = 2, variability = [-1,1], 6 occurrences Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
Выберите неопределенный действительный параметр b
в матричном M
в 20 случайных точках в его области значений.
[Ms,bvalues] = usample(M,'b',20);
Это приводит к массиву 20 3 2 матрицы umat
, только с одним неопределенным элементом, a
. Неопределенный элемент b
M
был выбран, оставив новое измерение массива в его месте.
Ms
Ms = 20x1 array of uncertain matrices with 3 rows, 2 columns, and the following uncertain blocks: a: Uncertain real, nominal = 4, variability = [-1,1], 3 occurrences Type "Ms.NominalValue" to see the nominal value, "get(Ms)" to see all properties, and "Ms.Uncertainty" to interact with the uncertain elements.
Кроме того, bvalues
является структурой, содержащей соответствующие выбранные значения b
.
bvalues
bvalues = 20x1 struct array with fields:
b
Затем, выберите остающийся неопределенный действительный параметр a
в матричном Ms
. Это удаляет второй неопределенный блок, приводящий к 3 2 20 15 double
.
[Mss,avalues] = usample(Ms,'a',15);
size(Mss)
ans = 1×4
3 2 20 15
Можно также выбрать несколько параметров целиком. Следующая операция возвращает Mss1
, который идентичен Mss
.
[Mss1,values] = usample(M,'b',20,'a',15);
Вместо того, чтобы выбирать каждую переменную (a
и b
) независимо, генерируя 20 15 сетка в 2 мерных пространствах, можно выбрать двумерное пространство непосредственно. Выберите 2 мерных пространства с 800 точками.
[Ms2d,values] = usample(M,{'a' 'b'},800);
Ms2d
является 3 2 800 массивами umat
, где каждая запись соответствует различному, случайным образом выбрал пару (a,b)
. Массив структур values
содержит эти значения (a,b)
.
values
values = 800x1 struct array with fields:
a
b