Динамическое изменение размера матрицы
Матрицы могут динамически изменять свой размер в процессе выполнения программы. Это позволяет адаптировать размер уже созданной матрицы к тем данным, которые ей предстоит хранить.
В следующем примере мы создадим матрицу 2 х 3:
-->А = [1 2 3; 4 5 6]
А =
1. 2. 3.
2. 5. 6.
Далее мы добавим в эту матрицу элемент с индексами (3,1). При этом в матрице будет создана третья строка, и первому элементу в ней будет присвоено 7, а значения остальных элементов данной строки будут установлены в 0.
-->А(3, 1) = 7
А =
1. 2. 3.
4. 5. 6.
7. 0. 0.
Таким образом, размер матрицы может увеличиваться динамически. Далее мы покажем, что возможно и его динамическое уменьшение. Для этого, используя обозначение пустой матрицы [] , удалим третий столбец матрицы А:
— >А(: , 3) = []
А =
1. 2.
4. 5.
7. 0.
Также можно полностью изменить размер матрицы посредством функции matrix. Эта функция трансформирует исходную матрицу в матрицу другого размера, копируя элементы столбец за столбцом. В следующем примере матрица А размером 3 х 2 = 6 преобразуется в вектор-строку с 6 элементами:
-->В = matrix(A, 1, 6)
В =
1. 4. 7. 2. 5. 0.
A(i,$) элемент на пересечении i-ой строки и последнего nс-ого столбца
A($,j) элемент на пересечении последней (nr-ой) строки и j-oгo столбца
A($-i,$-j) элемент на пересечении строки nr-i и столбца nс-j
Таблица 12: Доступ к элементам матрицы с использованием оператора " $". Предполагается, что матрица А имеет размер (nr, nc).