Skip to article frontmatterSkip to article content

Ejercicios de matrices

Ejercicios para trabajar con arreglos bidimensionales (matrices), tanto estáticas como dinámicas.


1: Operaciones Básicas

1.1: Mostrar Matriz

Descripción

Escribir una función que reciba una matriz (un arreglo 2D), sus dimensiones (filas y columnas), y la imprima en la consola de una forma clara y ordenada, fila por fila.

Entrada
Salida
Una matriz 2x3: 
[[1, 2, 3], [4, 5, 6]]

1.2: Multiplicación por un escalar

Descripción

Implementar una función que multiplique cada elemento de una matriz por un número escalar dado. La operación modifica la matriz original (in-place).

Entrada
Salida
Matriz: [[1, 2], [3, 4]]
Escalar: 5

2: Aritmética Matricial

2.1: Suma de matrices

Descripción

Implementar una función que sume dos matrices, A y B, y almacene el resultado en una tercera matriz, C. La suma de matrices solo es posible si ambas tienen las mismas dimensiones.

Entrada
Salida
Matriz A: [[1, 2], [3, 4]]
Matriz B: [[5, 6], [7, 8]]

2.2: Multiplicación de matrices

Descripción

Implementar la multiplicación de dos matrices, A (de m×nm \times n) y B (de n×pn \times p), cuyo resultado es una nueva matriz C (de m×pm \times p).

Entrada
Salida
Matriz A (2x3): [[1, 2, 3], [4, 5, 6]]
Matriz B (3x2): [[7, 8], [9, 10], [11, 12]]

3: Manipulación

3.1: Transposición

Descripción

Calcular la transpuesta ATA^T de una matriz AA. La transposición se obtiene intercambiando las filas por las columnas.

Entrada
Salida
Matriz A (2x3): `[[1, 2, 3], [4, 5, 6]]`

3.2: Suma de diagonales

Descripción

Para una matriz cuadrada, calcular la suma de los elementos de sus dos diagonales: la principal y la secundaria.

Entrada
Salida

Matriz (3x3):

[ 1, 2, 3 ]
[ 4, 5, 6 ]
[ 7, 8, 9 ]

4: Generación

4.1: Matriz Identidad

Descripción

Generar una matriz identidad de tamaño n x n. La matriz identidad es una matriz cuadrada con unos en la diagonal principal y ceros en todas las demás posiciones.

Entrada
Salida
Tamaño n = 3

5: Ejercicios Adicionales de Matrices

5.1: Matriz Simétrica

Descripción

Escribir una función que verifique si una matriz cuadrada es simétrica. Una matriz es simétrica si es igual a su propia transpuesta, lo que significa que el elemento en la fila i, columna j es igual al elemento en la fila j, columna i.

Entrada
Salida

Matriz (3x3):

[ 1, 7, 3 ]
[ 7, 4, 5 ]
[ 3, 5, 6 ]

5.2: Suma por Filas y Columnas

Descripción

Crear un programa que, dada una matriz, calcule dos arreglos: uno que contenga la suma de los elementos de cada fila y otro que contenga la suma de los elementos de cada columna.

Entrada
Salida

Matriz (2x3):

[ 1, 2, 3 ]
[ 4, 5, 6 ]

5.3: Elemento “Silla”

Descripción

Encontrar un “punto de silla” en una matriz. Un punto de silla es un elemento que es simultáneamente el valor mínimo en su fila y el valor máximo en su columna.

Entrada
Salida

Matriz (3x3):

[ 1, 2, 3 ]
[ 4, 5, 6 ]
[ 7, 8, 9 ]

6: Ejercicios de Matrices Dinámicas

6.1: Crear y Llenar Matriz Dinámica

Descripción

Escribir una función que solicite al usuario las dimensiones (filas y columnas) y luego los elementos de una matriz, para finalmente imprimirla.

Entrada
Salida

Se le pedirá al usuario que ingrese el número de filas y columnas, y luego cada uno de los elementos.

6: Más Algoritmos con Matrices

7.1: Reflejar Matriz

Implementar dos funciones: una que refleje una matriz horizontalmente (la primera fila se intercambia con la última, la segunda con la penúltima, etc.) y otra que la refleje verticalmente (la primera columna con la última, etc.).

7.2: Intercambiar Filas o Columnas

Crear funciones intercambiar_filas(mat, f1, f2) e intercambiar_columnas(mat, c1, c2) que modifiquen la matriz intercambiando los elementos de las filas o columnas especificadas.

7.3: Búsqueda de Submatriz

Escribir una función que determine si una matriz pequeña B (de k x l) se encuentra dentro de una matriz más grande A (de m x n). La función debe devolver las coordenadas de la esquina superior izquierda de la primera ocurrencia, o (-1, -1) si no se encuentra.

7.4: Determinante de Matriz 3x3

Calcular el determinante de una matriz 3x3 utilizando la Regla de Sarrus.

7.5: Suavizado de Matriz (Filtro de Caja)

Implementar un filtro de “suavizado” o “blur”. Para cada elemento de la matriz, su nuevo valor será el promedio de sus 8 vecinos y él mismo. Los elementos en los bordes requerirán un manejo especial.

7.6: Detección de Bordes (Operador de Sobel)

Aplicar un operador de Sobel simple para la detección de bordes. Esto implica “convolucionar” la matriz con un kernel (otra matriz pequeña, ej. 3x3) para resaltar las diferencias de intensidad, como los bordes.

7.7: Matriz de Permutación

Verificar si una matriz cuadrada es una matriz de permutación. Esta es una matriz binaria (solo 0s y 1s) que tiene exactamente un 1 en cada fila y en cada columna.

7.8: Producto de Hadamard

Implementar el producto de Hadamard (o producto elemento a elemento) de dos matrices A y B de las mismas dimensiones. La matriz resultante C se define como cij=aijbijc_{ij} = a_{ij} \cdot b_{ij}.

7.9: Rellenar con Triángulo de Pascal

Escribir una función que llene una matriz N x N con los valores del Triángulo de Pascal. El elemento (i, j) debe ser (ij)\binom{i}{j}.

7.10: Matriz Antisimétrica

Verificar si una matriz cuadrada es antisimétrica. Una matriz A es antisimétrica si su transpuesta es igual a su negativa, es decir, AT=AA^T = -A. Esto implica que aij=ajia_{ij} = -a_{ji} y que todos los elementos de la diagonal principal deben ser cero.