Anda di halaman 1dari 8

MATLAB

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.

Punto y coma. Smbolo de retorno de carro. Sirve para concatenar ms de una


sentencia en la misma lnea y para inhibir la salida por consola del resultado.
Importante:
El punto y coma al final de una sentencia explicita el retorno de carro e inhibe que
salga el resultado por pantalla.
Operaciones elementales con Matlab
Las convenciones para las operaciones en Matlab son idnticas que en cualquier
otro lenguaje de programacin o que en una calculadora programable. El orden de
asociacin de las operaciones es tambin el mismo. Primero se operan las
funciones matemticas elementales (senos, cosenos, logaritmos...), las
multiplicaciones y divisiones y luego sumas y restas. Por ejemplo, para realizar la
siguiente operacin:
1
2

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)

Reescribe lneas anteriores. A medida que presionemos este carcter


aparecern en la lnea actual todos los comandos escritos anteriormente.
Una vez estemos viendo los comandos podemos movernos entre ellos
mediante los cursores.
<CTRL>+<,>
Hace avanzar o retroceder el cursor por palabras en vez de por caracteres.
clc
Limpia la pantalla del intrprete de comandos
na funcin es una unidad de programa, una tarea independiente que puede o no
depender de variables externas. Las unidades de programa tpicas son las
funciones, las subrutinas, las clases... Matlab basa toda su potencia y su sencillez
en el constante uso de funciones. La razn es bien sencilla; si Matlab es un
programa para clculo numrico es normal que la unidad de programa esencial
sea la que tiene un significado ms matemtico
En Matlab se define una funcin del siguiente modo: 3:
function [variables_de_salida]= nombre(variables_de_entrada)
Comandos que terminamos asignando a las variables de salida
{end}
Por ejemplo,si queremos implementar una funcin que sume dos escalares
debemos hacer lo siguiente:
function [c]=suma(a,b)
c=a+b;
Y lo guardaremos en un archivo que se llame igual que la funcin; en el caso del
ejemplo ser suma.m. Luego lo guardaremos en nuestro directorio de trabajo.
El concepto de funcin va ms all pero esta descripcin es suficiente para
entender su papel dentro de la arquitectura de Matlab .

Matlab no distingue entre escalares y matrices. Si se dice que Matlab es un


lenguaje de clculo matricial es porque todos los nmeros son en el fondo
matrices. El nmero 1 puede ser escalar, vector y matriz a la vez sin ningn
problema:
>> a=1
a = 1
>> a(1)

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

Las variables que se definen en MATLAB siguen las convenciones de


nomenclatura computacional comunes:
Los nombres deben comenzar con una letra.
Letras, nmeros y guion bajo son los nicos caracteres permitidos.
Los nombres son sensibles a maysculas y minsculas.
Los nombres pueden tener cualquier longitud, aunque MATLAB slo usa los
primeros 63 caracteres.
Algunas palabras clave se reservan para MATLAB y no se pueden usar como
nombres de variables.
MATLAB permite al usuario reasignar nombres de funcin como nombres de
variable, aunque no es aconsejable hacerlo.
La unidad computacional bsica en MATLAB es la matriz. Las matrices pueden
ser.
Escalares (matriz 1x1).
Vectores (matrices 1xn o nx1, o una fila o una columna).
Arreglos bidimensionales (mxn o nxm).
Arreglos multidimensionales.
Con frecuencia, las matrices almacenan informacin numrica, aunque tambin
pueden almacenar otro tipo de informacin. Los datos se pueden ingresar en una
matriz de forma manual o se pueden recuperar de archivos de datos
almacenados. Cuando se ingresa manualmente, una matriz se encierra en
corchetes, los elementos en una fila se separan mediante comas o espacios, y
una nueva fila se indica con un punto y coma:
a= [1 2 3 4; 5 6 7 8]
Las matrices igualmente espaciadas se pueden generan con el operador dos
puntos. Por ende, el comando
b = 0 : 2 : 10

crea una matriz que comienza en 0, termina en 10 y tiene un incremento de 2.


Las funciones linspace y logspace se pueden usar para generar una matriz de
longitud especificada a partir de valores de inicio y fin dados, espaciados lineal o
logartmicamente. La funcin help o el men Help MATLAB se pueden usar para
determinar la sintaxis apropiada para estas y otras funciones. MATLAB sigue el
orden algebraico estndar de las operaciones. Los operadores que soporta
MATLAB se mencionan en la seccin Resumen MATLAB de este captulo.
MATLAB soporta notacin estndar (decimal) y cientfica.
Sin importar cmo se desplieguen los valores, se almacenan como nmeros de
punto flotante de doble precisin. Las colecciones de comandos MATLAB se
pueden guardar en archivos-m script. Las variables MATLAB se pueden guardar o
importar de archivos .MAT o .DAT. El formato .MAT es propio de MATLAB y se usa
porque almacena datos de manera ms eficiente que otros formatos de archivo. El
formato .DAT emplea el formato ASCII estndar y se usa cuando los datos creados
en MATLAB se compartirn con otros programas.

Todos los caracteres especiales, comandos y funciones

Trminos Clave

Anda mungkin juga menyukai