5. Matriz fila y matriz columna

Una matriz fila organiza sus elementos horizontalmente y una matriz columna los organiza verticalmente. Aunque pueden contener los mismos valores, sus dimensiones y su papel en las operaciones matriciales son diferentes.

5.1 Introducción

En el tema anterior clasificamos matrices según sus dimensiones y propiedades. Dos de los casos más simples son la matriz fila y la matriz columna.

Ambas pueden almacenar una secuencia de valores, pero no tienen la misma forma. La orientación determina cómo se combinan con otras matrices, qué productos pueden realizarse y cuál será la dimensión del resultado.

Matriz fila: orden 1 × n
Matriz columna: orden n × 1

5.2 ¿Qué es una matriz fila?

Una matriz fila es una matriz que tiene exactamente una fila. Puede contener cualquier cantidad positiva de columnas.

F = [3   7   2   5]

Filas: 1
Columnas: 4
Orden: 1 × 4

Sus elementos pueden nombrarse como f11, f12, f13 y f14. El primer subíndice siempre vale 1 porque existe una sola fila.

5.3 Representar una matriz fila en JavaScript

Como matriz, se representa mediante un arreglo exterior que contiene una única fila.

const fila = [[3, 7, 2, 5]];

console.log("Cantidad de filas:", fila.length);
console.log("Cantidad de columnas:", fila[0].length);
console.log("Elemento f₁₃:", fila[0][2]);

El doble corchete inicial no es decorativo: el arreglo exterior representa la matriz y el arreglo interior representa su única fila.

5.4 ¿Qué es una matriz columna?

Una matriz columna es una matriz que tiene exactamente una columna. Puede contener cualquier cantidad positiva de filas.

C = [3]
    [7]
    [2]
    [5]

Filas: 4
Columnas: 1
Orden: 4 × 1

Sus elementos pueden nombrarse como c11, c21, c31 y c41. El segundo subíndice siempre vale 1 porque existe una sola columna.

5.5 Representar una matriz columna en JavaScript

Cada fila contiene un solo elemento, por lo que necesitamos un arreglo interno por cada componente.

const columna = [[3], [7], [2], [5]];

console.log("Cantidad de filas:", columna.length);
console.log("Cantidad de columnas:", columna[0].length);
console.log("Elemento c₃₁:", columna[2][0]);

El elemento c31 se obtiene con columna[2][0] porque los índices de JavaScript comienzan en cero.

5.6 Comparación entre ambas

Característica Matriz fila Matriz columna
Orden general 1 × n n × 1
Cantidad de filas 1 n
Cantidad de columnas n 1
Orientación Horizontal Vertical
Elemento general f1j ci1
Como vector Vector fila Vector columna

Una matriz de orden 1 × 1 es simultáneamente matriz fila, matriz columna y matriz cuadrada.

5.7 Relación con los vectores

Un vector con n componentes puede representarse horizontalmente como matriz fila o verticalmente como matriz columna.

Vector fila: vT = [v1   v2   ...   vn]

Vector columna:
v = [v1]
    [v2]
    [ ... ]
    [vn]

En muchos textos, los vectores se consideran columnas de forma predeterminada. Su transpuesta se escribe como un vector fila.

5.8 Transponer una fila o una columna

La transpuesta intercambia filas por columnas. Por eso convierte una matriz fila de orden 1 × n en una matriz columna de orden n × 1, y viceversa.

F = [2   4   6]

FT = [2]
      [4]
      [6]
const fila = [[2, 4, 6]];

const columna = fila[0].map(valor => [valor]);
const filaRecuperada = [columna.map(elemento => elemento[0])];

console.log("Columna:", columna);
console.log("Fila:", filaRecuperada);

5.9 Acceso y recorrido de elementos

En una matriz fila cambia la columna mientras la fila permanece fija. En una matriz columna cambia la fila mientras la columna permanece fija.

const F = [[10, 20, 30]];
const C = [[10], [20], [30]];

F[0].forEach((valor, j) => {
  console.log(`F[1,${j + 1}] = ${valor}`);
});

C.forEach((fila, i) => {
  console.log(`C[${i + 1},1] = ${fila[0]}`);
});

La salida utiliza índices matemáticos, comenzando en 1, aunque internamente JavaScript recorre índices desde 0.

5.10 Suma de matrices fila o columna

Dos matrices pueden sumarse si tienen el mismo orden. Por lo tanto, podemos sumar dos matrices fila de igual longitud o dos matrices columna con la misma cantidad de filas.

[1   3   5] + [2   4   6] = [3   7   11]
function sumarFilas(a, b) {
  if (a.length !== b.length) {
    throw new Error("Las filas deben tener igual longitud");
  }

  return a.map((valor, j) => valor + b[j]);
}

console.log(sumarFilas([1, 3, 5], [2, 4, 6]));

No podemos sumar directamente una matriz fila de orden 1 × n con una matriz columna de orden n × 1 porque sus órdenes son diferentes.

5.11 Multiplicación por un escalar

Multiplicar una matriz fila o columna por un escalar consiste en multiplicar cada uno de sus elementos por el mismo número. La orientación y el orden no cambian.

const columna = [[3], [5], [7]];
const escalar = 2;

const resultado = columna.map(fila => [escalar * fila[0]]);

console.log(resultado);

El resultado es la matriz columna [[6], [10], [14]], que conserva el orden 3 × 1.

5.12 Producto de una fila por una columna

Una matriz fila de orden 1 × n puede multiplicarse por una matriz columna de orden n × 1. El resultado tiene orden 1 × 1, por lo que contiene un único valor.

[2   3   4] · [5] = 2·5 + 3·6 + 4·7 = 56
            [6]
            [7]
function filaPorColumna(fila, columna) {
  if (fila.length !== columna.length) {
    throw new Error("Las dimensiones internas deben coincidir");
  }

  return fila.reduce(
    (suma, valor, i) => suma + valor * columna[i],
    0
  );
}

console.log(filaPorColumna([2, 3, 4], [5, 6, 7]));

Esta operación coincide con el producto escalar entre dos vectores.

5.13 Producto de una columna por una fila

Si invertimos el orden, una matriz columna de orden m × 1 multiplicada por una matriz fila de orden 1 × n produce una matriz de orden m × n.

[2] · [4   5   6] = [ 8   10   12 ]
[3]                         [12   15   18 ]
function columnaPorFila(columna, fila) {
  return columna.map(valorColumna =>
    fila.map(valorFila => valorColumna * valorFila)
  );
}

console.log(columnaPorFila([2, 3], [4, 5, 6]));

Este cálculo se conoce como producto exterior. Demuestra que la multiplicación matricial depende del orden: fila por columna y columna por fila producen resultados de formas diferentes.

5.14 Compatibilidad de dimensiones

Operación Dimensiones Resultado
Suma de filas (1 × n) + (1 × n) 1 × n
Suma de columnas (n × 1) + (n × 1) n × 1
Fila por columna (1 × n)(n × 1) 1 × 1
Columna por fila (m × 1)(1 × n) m × n
Transpuesta de fila (1 × n)T n × 1
En una multiplicación, las dimensiones internas deben coincidir. Las dimensiones externas determinan el orden del resultado.

5.15 Uso en sistemas de ecuaciones

Las incógnitas y los resultados de un sistema lineal suelen representarse mediante matrices columna.

A x = b

x = [x1]    b = [b1]
    [x2]       [b2]
    [ ... ]       [ ... ]

La matriz de coeficientes A transforma el vector columna de incógnitas x en el vector columna de resultados b.

5.16 Uso en datos y programación

En una matriz de datos, una fila puede representar una observación y una columna puede representar una característica.

Filas: productos
Columnas: precio, cantidad y puntuación

datos = [[1200, 5, 4.8],
         [850, 8, 4.5],
         [2100, 3, 4.9]]
const datos = [
  [1200, 5, 4.8],
  [850, 8, 4.5],
  [2100, 3, 4.9]
];

const primerProducto = datos[0];
const precios = datos.map(fila => fila[0]);

console.log("Fila:", primerProducto);
console.log("Columna de precios:", precios);

Extraer filas selecciona observaciones completas; extraer columnas selecciona una misma característica para todas las observaciones.

5.17 Identificar matrices fila y columna

Una función de validación debe comprobar primero que la estructura sea una matriz rectangular y luego analizar sus dimensiones.

function identificarOrientacion(matriz) {
  if (!Array.isArray(matriz) || matriz.length === 0) return "inválida";
  if (!matriz.every(fila => Array.isArray(fila))) return "inválida";

  const columnas = matriz[0].length;
  if (!columnas || !matriz.every(fila => fila.length === columnas)) {
    return "inválida";
  }

  if (matriz.length === 1 && columnas === 1) return "fila y columna";
  if (matriz.length === 1) return "fila";
  if (columnas === 1) return "columna";
  return "ninguna de las dos";
}

console.log(identificarOrientacion([[2, 4, 6]]));
console.log(identificarOrientacion([[2], [4], [6]]));

5.18 Errores frecuentes

  • Representar una matriz fila como [1, 2, 3] y olvidar el arreglo exterior cuando el programa espera una matriz.
  • Representar una matriz columna como [[1, 2, 3]] en lugar de [[1], [2], [3]].
  • Creer que una fila y una columna con los mismos valores son matrices iguales.
  • Sumar una matriz fila y una matriz columna sin verificar su orden.
  • Suponer que fila por columna produce lo mismo que columna por fila.
  • Confundir la cantidad de componentes con la orientación del vector.

5.19 Qué debes recordar de este tema

  • Una matriz fila tiene orden 1 × n y una matriz columna tiene orden n × 1.
  • La transpuesta convierte una fila en columna y una columna en fila.
  • Dos matrices solo pueden sumarse si tienen el mismo orden.
  • Una fila por una columna compatible produce un único valor.
  • Una columna por una fila produce una matriz.
  • En conjuntos de datos, las filas suelen representar observaciones y las columnas, características.

5.20 Conclusión

Las matrices fila y columna contienen secuencias de valores, pero su orientación determina qué operaciones pueden realizarse y cuál será la forma del resultado. Esta distinción es esencial en sistemas de ecuaciones, gráficos y análisis de datos.

En el próximo tema estudiaremos las matrices cuadradas y rectangulares, sus diferencias y las operaciones que dependen de su forma.