Para entrar en Matlab pulse dos veces sobre el icono de Matlab que encontrará en su pantalla. Cuando haya entrado observará una ventana que, simplemente, espera sus comandos. Verá por tanto el signo del prompt>>
A partir de ahora puede hacer las operaciones que desee. Por ejemplo, sumar dos números
>> 5 + 7
Si aprieta al retorno de carro observará
ans =
12
>>
Esto indica que la operación que ha tecleado se ha realizado, y Matlab muestra el resultado en pantalla. Observe que no sólo muestra el resultado, sino que además ha definido una variable de nombre ans (last answer) que contiene el valor numérico 12. De hecho, si ahora teclea
>> ans
observará el resultado (tras, como antes, apretar el retorno de carro)
ans =
12
>>
de forma que Matlab le indica el contenido actual de dicha variable. Podemos definir cualquier variable a nuestro gusto. Por ejemplo
>> A = 13 ;
Si aprieta el retorno de carro, no observará eco alguno en pantalla, pero la variable habrá sido definida. La terminación con punto y coma hace que se suprima el eco. Esto será útil sobre todo en programas, para evitar así que todas y cada una de las operaciones aparezcan en pantalla.
Si ahora quiere saber cuántas variables tiene en el entorno de trabajo puede teclear
>> whos
y observará
>> whos
Name Size Bytes ClassA 1x1 8 double array
ans 1x1 8 double arrayGrand total is 2 elements using 16 bytes
En efecto, dispone de dos variables, de nombres A y ans. Note que, en realidad, ha definido dos matrices de números reales, cuyo tamaño es de 1 fila y 1 columna. ¿A qué se debe esto? A que en realidad Matlab opera con matrices, un caso particular del cual es un número real. Puede, por tanto, definir vectores
>> B = [5 7 8 9]
B =
5 7 8 9
O definir matrices
>> C = [5 7 8 9; 12 14 16 18]
C =
5 7 8 9
12 14 16 18Si ahora vuelve a examinar el entorno de trabajo
>> whos
Name Size Bytes ClassA 1x1 8 double array
B 1x4 32 double array
C 2x4 64 double array
ans 1x1 8 double arrayGrand total is 14 elements using 112 bytes
verá que, en efecto, todas las variables tienen el mismo tratamiento, es decir, tratamiento matricial, y los escalares y los vectores son simples casos particulares de matrices. Llegados a este punto, resulta particularmente útil explorar la creación de matrices especiales mediante comandos como ones, zeros, eye, etc... Para ello, puede acudir a la ayuda en línea de matlab mediante help nombre_de_funcion. Nótese que al final del volcado en pantalla al que da lugar el comando help, se proporcionan otra serie de funciones relacionadas que también puede ser interesante explorar.
De hecho, puede hacer operaciones matriciales/vectoriales/escalares de forma transparente. Algunos ejemplos serían
Matlab permite, asimismo, realizar operaciones sobre cada elemento de la matriz. Por ejemplo,
- Trasposición de una matriz
>> D=C'D =
5 12
7 14
8 16
9 18
- Conversión de un vector fila en un vector columna
>> B'ans =
5
7
8
9
- Producto de dos matrices
>> C*B'ans =
219
448
- Invertir una matriz cuadrada
>> inv(C*C')ans =
1.1856 -0.5773
-0.5773 0.2822
- Suma de un escalar a cada elemento de la matriz
>> C>> C =
5 7 8 9
12 14 16 18>> C+2
ans =
7 9 10 11
14 16 18 20
- Multiplicar cada elemento por un escalar
>> C*A
ans =
65 91 104 117
156 182 208 234
- Realizar operaciones lógicas sobre cada elemento de la matriz
>> C >= 0ans =
1 1 1 1
1 1 1 1Este resultado indica que todos los elementos de la matriz son no negativos. No obstante, podemos cambiar la comparación y cambiará el resultado
>> C >10
ans =
0 0 0 0
1 1 1 1
ya que sólo la segunda fila de la matriz C presenta valores superiores a 10.
- Multiplicar dos matrices (de las mismas dimensiones) elemento a elemento
>> F = [1 2 4 9; 9 3 6 0]F =
1 2 4 9
9 3 6 0>> C.*F
ans =
5 14 32 81
108 42 96 0Observe que hemos antepuesto un "punto" al signo de la multiplicación. Este punto hace que las operaciones sean realizadas elemento a elemento.
- Elevar los elementos de una matriz a una cierta potencia. Por ejemplo, compare los resultados obtenidos haciendo
>> (C*C')^2ans =
248665 510272
510272 1047104respecto de>> (C*C').^2
ans =
47961 200704
200704 846400En el primer caso hemos multiplicado una matriz cuadrada (el resultado de C*C') por ella misma. En el segundo, hemos elevado al cuadrado cada elemento de la matriz cuadrada C*C'.
Matlab dispone también de una potente semántica para poder indexar elementos dentro de las matrices de una forma rápida y eficiente. Algunos ejemplos ilustrarán esta forma de indexación.
- Podemos referirnos a cada elemento de una matriz como
>> CC =
5 7 8 9
12 14 16 18>> C(1,3)
ans =
8
- Asismo, podemos extraer una submatriz de C, consistente en la primera fila y todas las columnas de C
>> C(1,:)ans =
5 7 8 9
O bien la tercera columna y todas las filas
>> C(:,3)
ans =
8
16
- O bien las dos primeras filas y las tres primeras columnas
>> C(1:2,1:3)ans =
5 7 8
12 14 16
- O bien las dos primeras filas y las columnas de 2 a 4
>> C(1:2,2:4)ans =
7 8 9
14 16 18
- O bien, las dos primeras filas y las columnas 2 y 4
>> C(1:2,2:2:4)ans =
7 9
14 18En este caso, la sentencia 2:2:4 ha creado un vector de índices que comienza en 2 y, con incrementos de 2, llega hasta 4. Observe el resultado que obtendría tecleando
>> 1:7:21
Puede consultar las posibilidades que presenta el operador ":" tecleando help colon.
: Cree una matriz de M filas y N columnas (a elegir) de números aleatorios y, en una única línea, escriba una sentencia que le indique el número de elementos de dicha matriz que es mayor que 0.5. Para ello, puede resultarle útil considerar alguna de las funciones siguientes: rand, randn, sum, length, find. Puede consultar la ayuda en línea de Matlab en relación con ésta y otras funciones tecleando help nombre_de_funcion.