Una matriz cuadrada tiene igual cantidad de filas y columnas; una matriz rectangular tiene cantidades diferentes. Esta distinción determina qué operaciones pueden realizarse y qué tipo de transformación representa cada matriz.
La cantidad de filas y columnas define la forma de una matriz. Entre las clasificaciones más importantes se encuentran las matrices cuadradas y las matrices rectangulares no cuadradas.
La diferencia parece sencilla, pero tiene consecuencias importantes. El determinante, la traza, la inversa y los valores propios se estudian para matrices cuadradas. Las matrices rectangulares, en cambio, son habituales al organizar conjuntos de datos o transformar vectores entre espacios de dimensiones diferentes.
En sentido amplio, toda matriz forma un arreglo rectangular de filas y columnas. En este curso utilizaremos el nombre matriz rectangular para destacar el caso en que la cantidad de filas es diferente de la cantidad de columnas.
Una matriz rectangular puede tener más columnas que filas, como en el ejemplo, o más filas que columnas.
Una matriz cuadrada tiene la misma cantidad de filas y columnas. Su orden general es n × n.
El número n recibe el nombre de orden de la matriz cuadrada. En este ejemplo decimos que A es una matriz cuadrada de orden 3.
function formaDeMatriz(matriz) {
if (!matriz.length) return "vacía";
const columnas = matriz[0].length;
const esRegular = matriz.every(fila => fila.length === columnas);
if (!esRegular) return "estructura irregular";
return matriz.length === columnas ? "cuadrada" : "rectangular";
}
console.log(formaDeMatriz([[1, 2], [3, 4]]));
console.log(formaDeMatriz([[1, 2, 3], [4, 5, 6]]));
| Característica | Matriz cuadrada | Matriz rectangular |
|---|---|---|
| Dimensión | n × n | m × n, con m ≠ n |
| Filas y columnas | Igual cantidad | Distinta cantidad |
| Diagonal principal | Recorre toda la matriz | Existe, pero no cubre ambas dimensiones |
| Determinante | Puede calcularse | No se define |
| Inversa tradicional | Puede existir | No existe como inversa cuadrada |
| Uso frecuente | Transformaciones dentro del mismo espacio | Datos y transformaciones entre dimensiones diferentes |
Que una matriz sea cuadrada no garantiza que tenga inversa. Para que exista, además debe cumplir otras condiciones que estudiaremos más adelante.
En una matriz cuadrada de orden n, la diagonal principal contiene exactamente n elementos: a11, a22, ..., ann.
const A = [
[2, 5, 1],
[4, 3, 7],
[6, 8, 9]
];
const diagonal = A.map((fila, i) => fila[i]);
console.log(diagonal);
Los conjuntos de datos suelen ser rectangulares porque la cantidad de observaciones no coincide normalmente con la cantidad de características.
const notas = [
[8, 7, 9],
[6, 8, 7],
[9, 10, 8],
[7, 6, 8]
];
const segundaEvaluacion = notas.map(fila => fila[1]);
console.log("Orden:", `${notas.length} × ${notas[0].length}`);
console.log("Segunda evaluación:", segundaEvaluacion);
Una matriz de orden m × n contiene m · n elementos. Esto es válido tanto para matrices cuadradas como rectangulares.
| Orden | Forma | Cantidad de elementos |
|---|---|---|
| 2 × 2 | Cuadrada | 4 |
| 3 × 3 | Cuadrada | 9 |
| 2 × 5 | Rectangular | 10 |
| 100 × 20 | Rectangular | 2000 |
Al programar, conocer esta cantidad ayuda a estimar el espacio de memoria y la cantidad de operaciones necesarias para recorrer la matriz.
Podemos crear matrices cuadradas o rectangulares indicando la cantidad de filas, columnas y un valor inicial.
function crearMatriz(filas, columnas, valorInicial = 0) {
return Array.from({ length: filas }, () =>
Array.from({ length: columnas }, () => valorInicial)
);
}
const cuadrada = crearMatriz(3, 3);
const rectangular = crearMatriz(2, 4, 1);
console.log(cuadrada);
console.log(rectangular);
Cada fila se crea como un arreglo independiente. Esto evita que modificar una fila cambie accidentalmente las demás.
Dos matrices pueden sumarse o restarse si tienen exactamente el mismo orden. No importa si son cuadradas o rectangulares: lo importante es que coincidan tanto las filas como las columnas.
function sumarMatrices(A, B) {
const mismoOrden = A.length === B.length &&
A.every((fila, i) => fila.length === B[i].length);
if (!mismoOrden) throw new Error("Las matrices deben tener igual orden");
return A.map((fila, i) =>
fila.map((valor, j) => valor + B[i][j])
);
}
const A = [[1, 2, 3], [4, 5, 6]];
const B = [[6, 5, 4], [3, 2, 1]];
console.log(sumarMatrices(A, B));
Toda matriz puede multiplicarse por un escalar. Cada elemento se multiplica por el mismo número y el orden de la matriz no cambia.
function multiplicarPorEscalar(matriz, escalar) {
return matriz.map(fila =>
fila.map(valor => valor * escalar)
);
}
const R = [[1, 2, 3], [4, 5, 6]];
console.log(multiplicarPorEscalar(R, 3));
La matriz original es 2 × 3 y el resultado también es 2 × 3.
Una matriz A de orden m × n puede multiplicarse por una matriz B de orden n × p. El número de columnas de A debe coincidir con el número de filas de B.
function multiplicarMatrices(A, B) {
if (A[0].length !== B.length) {
throw new Error("Dimensiones incompatibles");
}
return A.map(fila =>
B[0].map((_, j) =>
fila.reduce((suma, valor, k) => suma + valor * B[k][j], 0)
)
);
}
const A = [[1, 2, 3], [4, 5, 6]];
const B = [[1, 2], [3, 4], [5, 6]];
console.log(multiplicarMatrices(A, B));
En este caso, una matriz 2 × 3 multiplicada por una matriz 3 × 2 produce una matriz cuadrada 2 × 2.
Dos matrices cuadradas del mismo orden siempre tienen dimensiones compatibles para multiplicarse. El resultado conserva el orden n × n.
Sin embargo, el producto no suele ser conmutativo: en general, AB ≠ BA. Que ambas matrices sean cuadradas permite calcular los dos productos, pero no obliga a que sus resultados coincidan.
La forma cuadrada permite relacionar cada fila con una columna correspondiente y definir varias operaciones importantes.
function traza(matriz) {
const n = matriz.length;
if (!n || !matriz.every(fila => fila.length === n)) {
throw new Error("La traza requiere una matriz cuadrada");
}
return matriz.reduce((suma, fila, i) => suma + fila[i], 0);
}
console.log(traza([[2, 5, 1], [4, 3, 7], [6, 8, 9]]));
Una matriz de coeficientes cuadrada representa un sistema con igual cantidad de ecuaciones e incógnitas. Esto no garantiza una solución única: también depende de que las ecuaciones sean independientes.
Una matriz rectangular aparece cuando las cantidades no coinciden:
Una matriz de orden m × n transforma un vector con n componentes en un vector con m componentes. En notación de espacios:
Una matriz cuadrada transforma vectores dentro de un espacio de la misma dimensión. Una matriz rectangular cambia la cantidad de componentes.
function matrizPorVector(A, vector) {
if (A[0].length !== vector.length) {
throw new Error("Dimensiones incompatibles");
}
return A.map(fila =>
fila.reduce((suma, valor, j) => suma + valor * vector[j], 0)
);
}
const A = [[1, 0, 2], [0, 1, 3]];
const vector3D = [4, 5, 2];
console.log(matrizPorVector(A, vector3D));
La matriz 2 × 3 transforma el vector de tres componentes en un vector de dos componentes.
La transpuesta intercambia filas por columnas. Una matriz rectangular m × n se convierte en una matriz n × m. Una matriz cuadrada n × n continúa siendo cuadrada.
function transponer(matriz) {
return matriz[0].map((_, j) =>
matriz.map(fila => fila[j])
);
}
const A = [[1, 2, 3], [4, 5, 6]];
const AT = transponer(A);
console.log(AT);
console.log(`Orden: ${AT.length} × ${AT[0].length}`);
Antes de operar conviene comprobar que la estructura sea rectangular y obtener su orden de manera segura.
function analizarMatriz(matriz) {
if (!Array.isArray(matriz) || matriz.length === 0) {
return { valida: false, motivo: "Matriz vacía o inexistente" };
}
if (!matriz.every(fila => Array.isArray(fila))) {
return { valida: false, motivo: "Cada fila debe ser un arreglo" };
}
const columnas = matriz[0].length;
const valida = columnas > 0 && matriz.every(fila => fila.length === columnas);
if (!valida) return { valida: false, motivo: "Filas de distinta longitud" };
const filas = matriz.length;
return {
valida: true,
orden: [filas, columnas],
forma: filas === columnas ? "cuadrada" : "rectangular"
};
}
console.log(analizarMatriz([[1, 2, 3], [4, 5, 6]]));
La forma de una matriz determina las operaciones que admite y la transformación que puede representar. Las matrices cuadradas relacionan espacios de igual dimensión, mientras que las rectangulares permiten organizar datos y conectar espacios de dimensiones diferentes.
En el próximo tema estudiaremos la matriz identidad y la matriz nula, dos estructuras fundamentales por su papel en la multiplicación y la suma de matrices.