Динамическое изменение размера матрицы

Матрицы могут динамически изменять свой размер в процессе выполнения про­граммы. Это позволяет адаптировать размер уже созданной матрицы к тем данным, которые ей предстоит хранить.

В следующем примере мы создадим матрицу 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).

© vse-o-scilab

Сделать бесплатный сайт с uCoz