Неопределенные матрицы (класс umat
) создаются из, удваивается и неопределенные элементы, с помощью традиционной матрицы MATLAB® создание синтаксиса. Неопределенные матрицы могут быть добавлены, вычтены, умножены, инвертированы, транспонированы, и т.д., приведя к неопределенным матрицам. На строки и столбцы неопределенной матрицы ссылаются таким же образом что строки и столбцы ссылок MATLAB массива, с помощью круглой скобки и целочисленных индексов. NominalValue
из неопределенной матрицы результат, полученный, когда все неопределенные элементы заменяются своим собственным NominalValue
. Неопределенные элементы, составляющие a umat
доступны через Uncertainty
шлюз и свойства каждого элемента в a umat
может быть изменен непосредственно. Свойства:
Свойства |
Значение |
Класс |
---|---|---|
|
Номинальная стоимость элемента |
|
|
Неопределенные блоки в матрице, сохраненной как структура, поля которой называют в честь неопределенных блоков и содержат неопределенные элементы, такие как |
|
|
Выборка сетки, для |
|
|
|
|
Используя usubs
, определенными значениями можно заменить любой из неопределенных элементов в a umat
. Команда usample
генерирует случайную выборку неопределенной матрицы, заменяя случайными выборками (в их областях значений) для каждого из неопределенных элементов.
Команда wcnorm
вычисляет трудные границы на худшем случае (максимум в областях значений неопределенных элементов) норма неопределенной матрицы.
Стандартный MATLAB числовые матрицы (т.е. double
) естественно может быть просмотрен как неопределенные матрицы без любой неопределенности.
Вы создаете неопределенные матрицы (umat
объекты) путем создания неопределенных параметров и использования их, чтобы создать матрицы. Можно затем использовать неопределенные матрицы, чтобы создать неопределенные модели в пространстве состояний. В этом примере показано, как создать неопределенную матрицу, доступ и изменить его неопределенные параметры, извлекают элементы, и выполнять матричную арифметику.
Например, создайте два неопределенных действительных параметра и используйте их, чтобы создать 3 2 неопределенную матрицу.
a = ureal('a',3); b = ureal('b',10,'Percentage',20); M = [-a, 1/b; b, a+1/b; 1, 3]
M = Uncertain matrix with 3 rows and 2 columns. The uncertainty consists of the following blocks: a: Uncertain real, nominal = 3, variability = [-1,1], 2 occurrences b: Uncertain real, nominal = 10, variability = [-20,20]%, 3 occurrences Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
Исследуйте и измените umat
Свойства
M
umat
объект. Исследуйте его свойства с помощью get
.
get(M)
NominalValue: [3x2 double] Uncertainty: [1x1 struct] SamplingGrid: [1x1 struct] Name: ''
Номинальная стоимость M
матрица, полученная, заменяя все неопределенные элементы на их номинальную стоимость.
M.NominalValue
ans = 3×2
-3.0000 0.1000
10.0000 3.1000
1.0000 3.0000
Uncertainty
свойство является структурой, содержащей неопределенные элементы (Блоки Системы управления) M
.
M.Uncertainty
ans = struct with fields:
a: [1x1 ureal]
b: [1x1 ureal]
M.Uncertainty.a
ans = Uncertain real parameter "a" with nominal value 3 and variability [-1,1].
Используйте Uncertainty
свойство для прямого доступа к неопределенным элементам. Например, проверяйте Range
из неопределенного элемента a
в M
.
M.Uncertainty.a.Range
ans = 1×2
2 4
Областью значений является [2,4]
потому что вы создали ureal
параметр a
с номинальной стоимостью 3 и неопределенность по умолчанию в +/-1. Измените область значений в [2.5,5]
.
M.Uncertainty.a.Range = [2.5,5]
M = Uncertain matrix with 3 rows and 2 columns. The uncertainty consists of the following blocks: a: Uncertain real, nominal = 3, variability = [-0.5,2], 2 occurrences b: Uncertain real, nominal = 10, variability = [-20,20]%, 3 occurrences Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
Это изменение в a
только происходит в M
. Проверьте что переменная a
в рабочем пространстве MATLAB все еще имеет исходную область значений.
a.Range
ans = 1×2
2 4
Вы не можете объединить элементы, которые имеют общее внутреннее имя, но различные свойства. Так, например, ввод M.Uncertainty.a - a
сгенерировал бы ошибку, потому что realp
параметр a
в рабочей области имеет различные свойства от элемента a
в M
.
Ссылка строки и столбца
Можно использовать стандартную ссылку столбца строки, чтобы извлечь элементы из umat
. Например, извлеките выбор 2 на 2 из M
состоя из его вторых и третьих строк.
Msub = M(2:3,:)
Msub = Uncertain matrix with 2 rows and 2 columns. The uncertainty consists of the following blocks: a: Uncertain real, nominal = 3, variability = [-0.5,2], 1 occurrences b: Uncertain real, nominal = 10, variability = [-20,20]%, 2 occurrences Type "Msub.NominalValue" to see the nominal value, "get(Msub)" to see all properties, and "Msub.Uncertainty" to interact with the uncertain elements.
Можно использовать одну индексацию только если umat
отдельный столбец или строка. Сделайте выбор отдельного столбца от M
и используйте одно ссылки на указатель, чтобы получить доступ к элементам его.
Msing = M([2 1 2 3],2); Msing(2)
ans = Uncertain matrix with 1 rows and 1 columns. The uncertainty consists of the following blocks: b: Uncertain real, nominal = 10, variability = [-20,20]%, 1 occurrences Type "ans.NominalValue" to see the nominal value, "get(ans)" to see all properties, and "ans.Uncertainty" to interact with the uncertain elements.
Можно использовать индексацию, чтобы изменить значение любого элемента umat
. Например, установите (3,2) запись M
к неопределенному параметру c
.
c = ureal('c',3,'Percentage',40); M(3,2) = c
M = Uncertain matrix with 3 rows and 2 columns. The uncertainty consists of the following blocks: a: Uncertain real, nominal = 3, variability = [-0.5,2], 2 occurrences b: Uncertain real, nominal = 10, variability = [-20,20]%, 2 occurrences c: Uncertain real, nominal = 3, variability = [-40,40]%, 1 occurrences Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
M теперь имеет три неопределенных блока.
Матричные операции на umat
Объекты
Можно выполнить много операций над матрицей на umat
объект, те, которые умножение матриц, транспонирует, и инверсия. Можно также объединить неопределенные матрицы с числовыми матрицами, которые не имеют неопределенности.
Например, предварительно умножьте M
1-by-3
числовая матрица, приводящая к 1 2 umat
.
M1 = [2 3 1]*M;
Проверьте что первая запись M1
как ожидалось, -2*a + 3*b + 1
.
d = M1(1) - (-2*M.Uncertainty.a + 3*M.Uncertainty.b + 1)
d = Uncertain matrix with 1 rows, 1 columns, and no uncertain blocks. Type "d.NominalValue" to see the nominal value, "get(d)" to see all properties, and "d.Uncertainty" to interact with the uncertain elements.
Транспонируйте M
, сформируйте продукт и инвертируйте его. Как ожидалось продуктом матрицы и ее инверсии является единичная матрица. Можно проверить это путем выборки результата.
H = M.'*M; K = inv(H); usample(K*H,3)
ans = ans(:,:,1) = 1.0000 0.0000 -0.0000 1.0000 ans(:,:,2) = 1.0000 0.0000 -0.0000 1.0000 ans(:,:,3) = 1.0000 -0.0000 -0.0000 1.0000
Подъем двойной матрицы к umat
Можно преобразовать числовую матрицу в umat
объект без неопределенных элементов. Используйте umat
команда, чтобы снять двойную матрицу к umat
класс. Например:
Md = [1 2 3;4 5 6]; M = umat(Md)
M = Uncertain matrix with 2 rows, 3 columns, and no uncertain blocks. Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
Можно также преобразовать более высокую размерность числовые матрицы в umat
. Когда вы делаете так, программное обеспечение интерпретирует третью размерность и вне как измерения массива. Например, преобразуйте случайный 3D числовой массив в umat
.
Md = randn(4,5,6); M = umat(Md)
M = 6x1 array of uncertain matrices with 4 rows, 5 columns, and no uncertain blocks. Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
Результатом является одномерный массив неопределенных матриц, а не 3D неопределенный массив. Точно так же четырехмерный числовой массив преобразует в двумерный массив umat
объекты.
Md = randn(4,5,6,7); M = umat(Md)
M = 6x7 array of uncertain matrices with 4 rows, 5 columns, and no uncertain blocks. Type "M.NominalValue" to see the nominal value, "get(M)" to see all properties, and "M.Uncertainty" to interact with the uncertain elements.
Смотрите Управление массивами для Неопределенных Объектов для получения дополнительной информации о многомерных массивах неопределенных объектов.