Неопределенные матрицы (класс umat
) создаются из, удваивается и неопределенные элементы, с помощью традиционной матрицы MATLAB® создание синтаксиса. Неопределенные матрицы могут быть добавлены, вычтены, умножены, инвертированы, транспонированы, и т.д., приведя к неопределенным матрицам. На строки и столбцы неопределенной матрицы ссылаются таким же образом что строки и столбцы ссылок MATLAB массива, с помощью круглой скобки и целочисленных индексов. NominalValue
неопределенной матрицы является результатом, полученным, когда все неопределенные элементы заменяются своим собственным NominalValue
. Неопределенные элементы, составляющие umat
, доступны через шлюз Uncertainty
, и свойства каждого элемента в umat
могут быть изменены непосредственно. Свойства:
Свойства |
Значение |
Класс |
---|---|---|
|
Номинальная стоимость элемента |
|
|
Неопределенные блоки в матрице, сохраненной как структура, поля которой называют в честь неопределенных блоков и содержат неопределенные элементы, такие как |
|
|
Выборка сетки, для массивов |
|
|
Имя |
|
Используя usubs
, определенными значениями можно заменить любой из неопределенных элементов в 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
является структурой, содержащей неопределенные элементы (Блоки Системы управления (Control System Toolbox)) 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.
Смотрите Управление массивами для Неопределенных Объектов для получения дополнительной информации о многомерных массивах неопределенных объектов.