Основы работы в VBA. Массивы
4. Операции с двумерными массивами (матрицами)
Двумерным называется массив, у которого размерность равна 2. Фактически
он представляет собой таблицу состоящую из строк и столбцов. Двумерные массивы, у которых значения индексов
одинаковые, т.е. число строк равно числу столбцов, называют квадратной матрицей. При работе с
квадратными матрицами используются специальные математические понятия, значение
которых рассмотрим на примере матрицы размерами 4х4 – B(4,4):
j = i – элемент находится на главной диагонали (\( b_{11}, b_{22}, b_{33}, b_{44} \));
j = n - i + 1 (n – размерность матрицы) – элемент находится на побочной диагонали (\( b_{41}, b_{32}, b_{23}, b_{14} \));
i < j – элемент находится над главной диагональю (\( b_{12}, b_{13},b_{14},b_{23}, b_{24}, b_{34}, \));
i > j – элемент находится под главной диагональю (\( b_{21}, b_{31},b_{32},b_{41}, b_{42}, b_{43}, \)).
Транспонированной матрицей В(n, n) называется такая квадратная матрица, у которой столбцы соответствуют строкам исходной квадратной матрицы А(n, n):
Элементы главной диагонали у матриц А и В одни и те же. Следовательно операция транспонирования матрицы А сводится к перестановке строк матрицы.
Dim a() As Single
Dim b() As Single
n = 5
ReDim a(n, n): ReDim b(n, n)
For i = 1 To n
For j = 1 To n
a(i, j) = Cells(i, j)
b(j, i) = a(i, j) 'транспонирование матрицы
Next j
Next i
For i = 1 To n
For j = 1 To n
Cells(n + 1 + i, j) = b(i, j) 'вывод результата
Next j
Next i
Результат программы: