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

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

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

| |

Похожие темы