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 →