Демонстрационные неопределенные элементы, чтобы создать массивы

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

Смотрите также

| |

Похожие темы