Вообще так же как матрицы

из скаляров

логично отождествлять с линейными отображениями

, матрицы-строки дадут отображения

, аналогично матрицы-строки из векторов

— это линейные отображения

, а вот чтобы адекватно формализовать матрицы-столбцы из ковекторов

, придётся сначала разделить пространства столбцов

и пространства строк

. У нас есть естественное билинейное

, так что мы отождествим

и наоборот. Матрицы-столбцы из

получатся линейными отображениями

. Сопряжённым отображением будет

, и вот это мы можем нормально умножить на матрицу-строку

и получить квадратную матрицу

.
При формализации матриц я бы правда лучше сразу перешёл к тензорным произведениям пространств. Тогда матрица-столбец из ковекторов — это

, матрица-строка из векторов —

, берём их тензорное произведение, берём след, остаётся

.
Но вообще матрица Грама — это ведь матрица билинейной формы, чего с ней мудрить? Ради матриц перехода и общего рассмотрения линейных отображений между разными пространствами логично ввести матрицы отображений — и операторов — в
двух базисах, исходном и конечном, а для матрицы Грама, чтобы она не оказывалась неудобно выглядящей строкой строк, логично понимать её как матрицу отождествления

(или наоборот), где один базис обычный на

, а второй двойственный к нему (но не через скалярное произведение — а то получится всегда диагональная каноническая матрица формы). Матрицы отображений, взятых в разных базисах разных пространств, нужно просто умножать только на подходящие матрицы, а в остальном ничего нового. Матрицы из сложенных друг на друга векторов тоже работают через

как выше, но понадобятся нам в меньшем числе случаев: ни для матриц перехода, ни для матрицы Грама в принципе не будут нужны.