Operaciones básicas con matrices
Este ejemplo muestra funciones y técnicas básicas para trabajar con matrices en el lenguaje de MATLAB®.
En primer lugar, creemos un vector simple con nueve elementos llamado a
.
a = [1 2 3 4 6 4 3 4 5]
a = 1×9
1 2 3 4 6 4 3 4 5
Ahora, añadamos 2 a cada elemento de nuestro vector, a
, y guardemos el resultado en un nuevo vector.
Observe cómo MATLAB no requiere ninguna manipulación especial de las matemáticas del vector o de la matriz.
b = a + 2
b = 1×9
3 4 5 6 8 6 5 6 7
Crear gráficas en MATLAB es tan fácil como introducir un comando. Representemos el resultado de la suma a nuestro vector con líneas de cuadrícula.
plot(b)
grid on
MATLAB puede crear también otros tipos de gráficas, con etiquetas de ejes.
bar(b) xlabel('Sample #') ylabel('Pounds')
MATLAB puede utilizar también símbolos en las gráficas. A continuación, se muestra un ejemplo en el que se utilizan estrellas para marcar los puntos. MATLAB ofrece una gran variedad de símbolos y tipos de líneas.
plot(b,'*')
axis([0 10 0 10])
Un área en la que MATLAB destaca es en el cálculo de matrices.
Crear una matriz es igual de fácil que crear un vector, con puntos y comas (;) para separar las filas de una matriz.
A = [1 2 0; 2 5 -1; 4 10 -1]
A = 3×3
1 2 0
2 5 -1
4 10 -1
Podemos buscar fácilmente la traspuesta de la matriz A
.
B = A'
B = 3×3
1 2 4
2 5 10
0 -1 -1
Ahora, multipliquemos estas dos matrices.
Observe de nuevo que MATLAB no requiere que trate las matrices como una colección de números. MATLAB sabe cuándo trabaja con matrices y ajusta sus cálculos en consecuencia.
C = A * B
C = 3×3
5 12 24
12 30 59
24 59 117
En lugar de realizar una multiplicación de matrices, podemos multiplicar los elementos correspondientes de dos matrices o vectores mediante el operador .*.
C = A .* B
C = 3×3
1 4 0
4 25 -10
0 -10 1
Utilicemos la matriz A para resolver la ecuación, A*x = b. Se hace con el operador \ (barra invertida).
b = [1;3;5]
b = 3×1
1
3
5
x = A\b
x = 3×1
1
0
-1
Ahora podemos mostrar que A*x es igual a b.
r = A*x - b
r = 3×1
0
0
0
MATLAB cuenta con funciones para casi cada tipo de cálculo de matriz frecuente.
Existen funciones para obtener valores propios...
eig(A)
ans = 3×1
3.7321
0.2679
1.0000
…además de los valores singulares.
svd(A)
ans = 3×1
12.3171
0.5149
0.1577
La función "poly" genera un vector que contiene los coeficientes del polinomio característico.
El polinomio característico de una matriz A
es
p = round(poly(A))
p = 1×4
1 -5 5 -1
Podemos buscar fácilmente las raíces de un polinomio con la función roots
.
Estos son de hecho los valores propios de la matriz original.
roots(p)
ans = 3×1
3.7321
1.0000
0.2679
MATLAB cuenta con muchas aplicaciones más allá de los cálculos de matriz.
Para convolucionar dos vectores...
q = conv(p,p)
q = 1×7
1 -10 35 -52 35 -10 1
...o volver a convolucionar y representar el resultado.
r = conv(p,q)
r = 1×10
1 -15 90 -278 480 -480 278 -90 15 -1
plot(r);
En cualquier momento, podemos obtener una lista de las variables que hemos guardado en la memoria con el comando who
o whos
.
whos
Name Size Bytes Class Attributes A 3x3 72 double B 3x3 72 double C 3x3 72 double a 1x9 72 double ans 3x1 24 double b 3x1 24 double p 1x4 32 double q 1x7 56 double r 1x10 80 double x 3x1 24 double
Puede obtener el valor de una variable concreta escribiendo su nombre.
A
A = 3×3
1 2 0
2 5 -1
4 10 -1
Puede tener más de una instrucción en una única línea separando cada instrucción con comas o puntos y comas.
Si no asigna una variable para guardar el resultado de una operación, el resultado se guarda en una variable temporal llamada ans
.
sqrt(-1)
ans = 0.0000 + 1.0000i
Como puede ver, MATLAB aborda fácilmente los números complejos en sus cálculos.