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