← MATLAB EspañolChapter 06 of 13

Operaciones con Matrices

## Objetivos de Aprendizaje - Crear y manipular matrices - Realizar aritmetica de matrices - Aplicar operaciones de algebra lineal - Usar difusion para arreglos ## Creando Matrices ### Creacion Basica de Matrices ```matlab % Entrada directa (separador de filas: ; o nueva linea) A = [1, 2, 3; 4, 5, 6; 7, 8, 9] % Usando nueva linea en lugar de punto y coma B = [1, 2, 3 4, 5, 6 7, 8, 9] ``` ### Matrices Especiales ```matlab zeros(3) % Matriz 3x3 de ceros zeros(3, 4) % Matriz 3x4 de ceros ones(3) % Matriz 3x3 de unos ones(2, 5) % Matriz 2x5 de unos eye(3) % Matriz identidad 3x3 eye(3, 4) % Matriz identidad 3x4 rand(3) % Aleatorio uniforme 3x3 [0,1] randn(3) % Distribucion normal 3x3 magic(3) % Cuadrado magico 3x3 ``` ### Creacion Basada en Rangos ```matlab % Operador dos puntos 1:5 % [1, 2, 3, 4, 5] 0:0.5:2 % [0, 0.5, 1, 1.5, 2] 10:-1:7 % [10, 9, 8, 7] % linspace (espaciado lineal) linspace(0, 10, 5) % [0, 2.5, 5, 7.5, 10] % logspace (espaciado logaritmico) logspace(0, 2, 3) % [1, 10, 100] ``` ## Indexacion de Matrices ### Elemento Unico ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; A(1, 1) % 1 (fila 1, col 1) A(3, 3) % 9 (fila 3, col 3) A(5) % 5 (indexacion lineal: orden columna) ``` ### Submatrices ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; A(1, :) % Fila 1: [1, 2, 3] A(:, 2) % Columna 2: [2; 5; 8] A(1:2, 1:2) % Submatriz 2x2 superior izquierda: [1, 2; 4, 5] A(end, :) % Ultima fila: [7, 8, 9] A(:, end) % Ultima columna: [3; 6; 9] ``` ### Indexacion Logica ```matlab A = [1, 2, 3, 4, 5]; % Encontrar elementos mayores que 3 idx = A > 3; % [0, 0, 0, 1, 1] A(idx) % [4, 5] % Indexacion logica directa A(A > 3) % [4, 5] ``` ### Cambiando Elementos ```matlab A = [1, 2; 3, 4]; A(1, 1) = 10; % A = [10, 2; 3, 4] A(2, :) = [5, 6]; % A = [10, 2; 5, 6] ``` ## Aritmetica de Matrices ### Suma y Resta ```matlab A = [1, 2; 3, 4]; B = [5, 6; 7, 8]; C = A + B % [6, 8; 10, 12] C = A - B % [-4, -4; -4, -4] % Operaciones con escalares C = A + 10 % [11, 12; 13, 14] ``` ### Multiplicacion de Matrices ```matlab A = [1, 2; 3, 4]; B = [5, 6; 7, 8]; C = A * B % Producto de matrices: [19, 22; 43, 50] % Multiplicacion elemento por elemento C = A .* B % [5, 12; 21, 32] ``` ### Division de Matrices ```matlab A = [1, 2; 3, 4]; % Division derecha de matrices (A * inv(B)) C = A / B % A * B^(-1) % Division izquierda de matrices (resuelve Ax = B) C = A \ B % A^(-1) * B % Division elemento por elemento C = A ./ B % [0.2, 0.333; 0.428, 0.5] ``` ### Potencia de Matrices ```matlab A = [1, 2; 3, 4]; % Potencia de matriz (A * A) C = A ^ 2 % [7, 10; 15, 22] % Potencia elemento por elemento C = A .^ 2 % [1, 4; 9, 16] ``` ## Operaciones de Algebra Lineal ### Transpuesta ```matlab A = [1, 2, 3; 4, 5, 6]; A' % Transpuesta: [1, 4; 2, 5; 3, 6] A.' % Igual para matrices reales (transpuesta conjugada para complejas) ``` ### Determinante e Inversa ```matlab A = [1, 2; 3, 4]; det(A) % -2 inv(A) % [-2, 1; 1.5, -0.5] ``` ### Valores y Vectores Propios ```matlab A = [1, 2; 2, 1]; [V, D] = eig(A); % V: vectores propios como columnas % D: matriz diagonal de valores propios ``` ### Descomposiciones de Matrices ```matlab A = [1, 2; 3, 4]; % Descomposicion LU [L, U] = lu(A); % Descomposicion QR [Q, R] = qr(A); % SVD (Descomposicion en Valores Singulares) [U, S, V] = svd(A); ``` ### Resolviendo Sistemas Lineales ```matlab % Resolver Ax = b A = [1, 2; 3, 4]; b = [5; 11]; x = A \ b % Solucion: [1; 2] x = inv(A) * b % Metodo alternativo ``` ## Manipulacion de Matrices ### Concatenacion ```matlab A = [1, 2]; B = [3, 4]; C = [A, B] % Horizontal: [1, 2, 3, 4] C = [A; B] % Vertical: [1, 2; 3, 4] ``` ### Redimensionar ```matlab A = 1:12; reshape(A, 3, 4) % Matriz 3x4: [1, 4, 7, 10; 2, 5, 8, 11; 3, 6, 9, 12] reshape(A, 2, 6) % Matriz 2x6 ``` ### Repmat y Reshape ```matlab A = [1, 2; 3, 4]; repmat(A, 2, 3) % Mosaico de A: [1,2,1,2,1,2; 3,4,3,4,3,4; 1,2,1,2,1,2; 3,4,3,4,3,4] ``` ### Diagonal y Triangular ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; diag(A) % Diagonal principal: [1; 5; 9] diag(A, 1) % Superdiagonal primera: [2; 6] diag(A, -1) % Subdiagonal primera: [4; 8] triu(A) % Triangular superior tril(A) % Triangular inferior ``` ## Difusion ### Operaciones Arreglo-Matriz ```matlab A = [1, 2, 3; 4, 5, 6]; v = [10, 20, 30]; % Vector fila % Difusion: v se suma a cada fila B = A + v % [11, 22, 33; 14, 25, 36] ``` ### Arreglo con Vector Columna ```matlab A = [1, 2, 3; 4, 5, 6]; v = [10; 20]; % Vector columna % Difusion: v se suma a cada columna B = A + v % [11, 12, 13; 24, 25, 26] ``` ### Difusion de Escalares ```matlab A = [1, 2, 3; 4, 5, 6]; B = A + 10 % [11, 12, 13; 14, 15, 16] ``` ### Funciones Elemento por Elemento ```matlab A = [0, pi/2, pi]; sin(A) % [0, 1, 0] - sin aplicado a cada elemento exp(A) % [1, 4.81, 23.14] log(A(2)) % log(pi/2) ``` ## Informacion de Matrices ```matlab A = [1, 2, 3; 4, 5, 6]; size(A) % [2, 3] length(A) % 3 (dimension mas grande) numel(A) % 6 ndims(A) % 2 ``` ## Resumen - Crear matrices con `[fila1; fila2; ...]` o funciones especializadas - Usar `:` e indexacion `A(fila, col)` para acceso - `*` es multiplicacion de matrices; `.*` es elemento por elemento - `'` da transpuesta; `^` es potencia de matriz - Usar `inv()`, `det()`, `eig()` para algebra lineal - La difusion expande automaticamente dimensiones compatibles - Usar `reshape()`, `repmat()`, `diag()` para manipulacion

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →