exponenta event banner

Пример неопределенных элементов для создания массивов

Обычным способом создания массива является выборка неопределенных элементов неопределенного объекта. В этом примере показано, как создавать массивы путем взятия случайных выборок 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

См. также

| |

Связанные темы