Распространенный способ сгенерировать массив состоит в том, чтобы произвести неопределенные элементы неопределенного объекта. В этом примере показано, как сгенерировать массивы путем взятия случайных выборок 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=20×1 struct
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=800×2 struct
a
b