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

 из скаляров 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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