Matlab tiene muy pocas sentencias. Como lenguaje es muy sencillo aunque cada
versin incluye nuevas especificaciones. En los ltimos aos se ha aadido la
extensin para programacin orientada a objetos y el diseo de interfaces
grficas. Octave es ligeramente distinto en su concepcin; es ms minimista y
cuenta con muchas menos funciones pero es ms fcilmente extensible. Son las
diferencias tpicas entre los productos libres y los comerciales.
Este captulo es la referencia del lenguaje; en l veremos argumentos, variables,
operadores y sentencias que nos servirn para programar funciones y scripts as
como la arquitectura general del programa. Es con diferencia la parte ms
importante del libro y no se ha dividido en varios captulos para no romper el hilo
conceptual.
Convenciones
A partir de ahora escribiremos un comando escrito en la consola de la siguiente
manera:
>> %Esto es un comentario puesto en la consola de Matlab
Escribiremos todas las palabras clave con letra de formato fijo como esta
funcin: sin(x).
Veremos que la sintaxis de Matlab no es muy distinta de la de cualquier otro
lenguaje; las diferencias sern las de siempre, los smbolos de continuacin, los
comentarios... Aunque sea un poco temprano los listamos a continuacin:
'_'
Comillas simples. Sirven para introducir texto literal, todo lo que se encuentre en
este entorno ser tomado como texto y no como el nombre de una variable
``_''
Comillas dobles. Smbolo de carcter tambin soportado en Octave.
%
Porcentaje. Es el smbolo del comentario. Todo lo que est por detrs de este
smbolo en una lnea es ignorado por el intrprete.
#
Almohadilla. Smbolo del comentario slo soportado por Octave. Es muy til
cuando se quieren aadir comentarios en la cabecera de una funcin sin que el
parser1 lo tome como parte de la ayuda.
...
Tres puntos. Al aadir alguno de estos dos smbolos al final de una lnea significa
que se tomar la posterior como continuacin
Barra invertida. El smbolo de continuacin de C, C++ y Python tambin est
soportado en Octave.
0.4
0.11/2
21/3
introduciremos en la consola:
>> 1/((2/0.1 ^(1/2))-(0.4/2 ^(1/3)))
Evidentemente Matlab no distingue entre elementos numricos y variables, la
ecuacin:
a
b
e
-
cd
gf
>> a/(b/c^d-e/g^f)
Los parntesis sirven para variar el orden normal de las operaciones a realizar.
Algunas palabras clave y atajos de teclado.
La consola es un entorno de trabajo ms potente de lo que parece. Editar
directamente en ella es un ejercicio cmodo gracias a una serie de atajos de
teclado de gran utilidad. Uno de los ms potentes es la capacidad de autocompletar alguna palabra clave con la tecla de tabular, tab completion en ingls.
Por ejemplo, si nos encontramos en el intrprete Octave y nos acordamos cmo
se escribe exactamente la funcin para trasponer una matriz podemos hacer lo
siguiente, escribimos slo el inicio de la palabra y luego presionamos la tecla de
tabular:
>> tra<TAB>
trace
transpose trapz
A continuacin una lista de palabras clave y atajos de teclado que pueden
hacernos la vida mucho ms fcil:
exit
Cierra el intrprete, equivalente a cerrar la ventana.
<CTRL>-c
Corta la ejecucin del comando actual (kill)
ans = 1
>> a(1,1)
ans = 1
>> a(1,1,1)
ans = 1
Tampoco distingue si sus elementos son enteros o reales, todos los nmeros
tienen la misma precisin en coma flotante, que es doble precisin siempre que no
le indiquemos lo contrario. Las entradas
>> a=105
a = 105
>> a=1.05e+2
a = 105
>> a=1050e-1
a = 105
>> a=105.
a = 105
son equivalentes. Estas son las dos caractersticas ms importantes del lenguaje.
Nmeros Complejos
En realidad deberan llamarse matrices cuyos elementos son nmeros complejos,
pero se ha abreviado. Las reglas matriciales son exactamente las mismas, lo nico
que cambia es el carcter individual de cada elemento. La manera de introducir un
nmero complejo como argumento en una variable es el uso del nmero i que
multiplica a la parte imaginaria.
>> numcom=2+3i
Tambin podemos usar otros signos para expresar i como j, I o J. Evidentemente
tambin podemos crear vectores, matrices y tensores de nmeros complejos, y al
buscar un ndice en ellos tendremos el nmero complejo completo.
Adems del nmero i tenemos otros nmeros relevantes embebidos dentro de
Matlab, como los nmeros racionales como pi o e.
Operadores
Cuando operamos elementos en Matlab, como cuando lo hacemos en cualquier
lenguaje de programacin, debemos tener en cuenta la dicotoma entre variable y
argumento. Es tan importante porque debemos comprender perfectamente la
sutileza de que los operadores no operan variables sino argumentos, en el caso
de Matlab, matrices.
La consecuencia directa es que todos los operadores de Matlab son matriciales.
En algunos casos, como la suma o la resta, los operadores matriciales son
equivalentes a lo escalares (elementwise9 o elemento a elemento); en cambio la
multiplicacin y la potencia generan resultados completamente distintos.
Por ejemplo, si tomamos dos matrices cualquiera:
>> A=[1 2 3;4 5 6;7 8 9];
>> B=[9 8 7;6 5 4;3 2 1];
Su multiplicacin directa va a dar como resultado precisamente la multiplicacin
matricial:
>> A*B
ans =
30 24 18
84 69 54
138 114 90
Trminos Clave