Você está na página 1de 22

MANUAL DE MATLAB

MATLAB, programa comercial para la realizacin de clculos


matemticos y generacin de grficos.

UVM Sur

ndice
Qu es MATLAB?

Ayuda

Caracteres especiales

Entorno de MATLAB

Solucin de ecuaciones de segundo grado

Matemtica con arreglos

Matrices

10

Grficas

13

Otros comandos

16

Anlisis de datos

18

Otros

19

Qu es MATLAB?
MATLAB = 'MATrix LABoratory' (LABORATORIO DE MATRICES).
Es un medio computacional tcnico, que
integra anlisis numrico, matrices,
procesamiento
de seales y grficas,
todo
esto
en
un ambiente donde
los problemas y soluciones son expresados tal como se escriben matemticamente.
MATLAB fue escrito originalmente en fortran, actualmente est escrito en lenguaje C.
MATLAB cuenta con paquetes de funciones especializadas llamadas toolboxes, como por
ejemplo:
Control system Toolbox
Nonlinear Control Design Toolbox
Robust Control Toolbox
Optimization Toolbox
Frequency Domain System Identification
Quantitative Feedback Theory Toolbox
Toolbox
Signal Processing Toolbox
Fuzzy Logic Toolbox
SIMULINK, SIMULINK Real Time
Higher Order Spectral Analisys Toolbox
Workshop
Image Processing Toolbox
Spline Toolbox
Model Predective Control Toolbox
Statistics Toolbox
Mu Analisis and Synthesis Toolbox
Symbolic Math Toolbox
NAG Foundation Toolbox
System Identification Toolbox.
Neural Network Toolbox
Inicio de MATLAB
MATLAB se inicia directamente desde Windows.
Al invocarse MATLAB aparecer la pantalla de comandos, algunas sugerencias y el smbolo
>>, el cual indica la entrada de instrucciones para ser evaluadas.
>>
>> Comando o instruccin a evaluar < enter >
Para hacer la suma de dos nmeros, escribimos :
>> 5 + 5 < enter > Presionamos la tecla entrar.
ans =
10
El resultado es desplegado y se guarda en la variable ans (answer).
NOTA: En este tutorial el smbolo >> desaparecer, y ser reemplazado por un par
de corchetes con la instruccin dentro de ellos. [ 5 + 5 ]. La instruccin aparecer
en color verde.
Para poder ver ejecutarse la instruccin, debemos ponernos en el rengln donde est la
instruccin o marcarla con el ratn y presionar al mismo tiempo las teclas.
<Ctrl> <Enter>

Otra forma de evaluar una instruccin, es poner el apuntador del ratn entre los corchetes
de la instruccin y presionar el botn derecho del ratn; aparecer un men del cual se
tiene que escoger evaluar celda.
Hagamos la prueba con el rengln inmediato.
5 + 5 Presionar <Ctrl> <Enter>
La respuesta es desplegada en color azul y entre corchetes.
Help
El comando help proporciona una lista de todos los tpicos que MATLAB puede
proporcionar ayuda.
help
help 'comando' proporciona ayuda sobre el comando especificado.
help sqrt
Proporciona ayuda sobre la instruccin sqrt.
Cmo funciona MATLAB?
Cada vez que capturamos informacin en MATLAB y presionamos <ENTER> sta es
desplegada inmediatamente (letras en color azul), pero si ponemos un punto y coma al
final de la instruccin MATLAB omite el desplegado de informacin.
Por ejemplo:
b = 50 ;
Si se quiere saber el valor de alguna variable capturada slo se tiene que poner el nombre
de la variable y <ENTER> y MATLAB lo despliega. Estas variables residen en el espacio
de trabajo de MATLAB.
Las variables son sensibles a las maysculas, por lo que las siguientes variables son
diferentes:
Variable = 1
variable = 1
Las variables pueden contener hasta 19 caracteres. stas deben empezar con una letra,
seguida por cualquier nmero de letras, dgitos o guiones de subrayado.
Los caracteres de puntuacin no son permitidos en las variables.
who muestra un desplegado de todas aquellas variables que se han estado utilizando.
whos Muestra las variables con informacin adicional.

Ayuda

Cmo obtener informacin sobre los comandos de Matlab.


Este documento es tan slo una introduccin -muy resumida- del lenguaje y del manejo
de Matlab. Antes de seguir, es conveniente indicar cmo puede obtenerse ms
informacin sobre cualquier detalle referente a Matlab.
Desde adentro
Matlab pueden obtenerse explicaciones sobre un tema particular. Hay varios mtodos.
El comando help. Para obtener informacin sobre una determinada funcin, basta
teclear desde la lnea de comandos help seguido del nombre de la funcin.
Si se escribe slo help, se obtiene un ndice de temas.
Tambin puede obtenerse informacin sobre uno de los temas de esa lista: as, help
elfun proporciona informacin sobre las funciones matemticas elementales.
La ventana de ayuda. Puede llamarse tecleando helpwin o bien escogiendo del men
Help el tem Help Window.
La ayuda interactiva. Se obtiene escogiendo del men Help el tem Help Desk, o
tecleando helpdesk en la barra de comandos. Se lanza el navegador y se obtiene un
documento de inicio con un ndice de temas en hipertexto donde estn los manuales
y otras utilidades, como un buscador. Para leer el manual, se necesita el programa
Acrobat Reader.

Una introduccin a Matlab ms rigurosa, extensa y comprensiva puede encontrarse


en el epgrafe "Getting Started" del Help Desk.

Caracteres especiales
[ ] Son usados para formar vectores y matrices
( ) Usados para expresiones matemticas
= Usado para hacer asignaciones
' Transpuesta de una matriz / Usado para separar 'texto'
. Punto decimal
... Al final de una lnea indican que contina 2, 3, 4, 5, 6.... En el siguiente rengln. 7, 8, 9,10]
, Para separar elementos
; Para separar filas en las matrices
; Para evitar que se despliegue la informacin capturada.
% Para hacer comentarios
! Para ejecutar un comando del Ms-dos !dir
El punto decimal es . (No una coma)
En Matlab, las maysculas y las minsculas son distintas. Es decir, X es una variable
diferente de x.
Operaciones bsicas
SUMA
DIVISION
C=a+b
F=a/b
RESTA
F=a\b
d=a-b
POTENCIA
MULTIPLICACION
a^2
e=a*b
Como este ltimo clculo no tena variable asignada, la respuesta se guarda en la variable
ans (answer).
Borrado de variables.
Para borrar el valor de una variable simplemente ponemos
clear a Borra la variable " a "
"CLEAR " Borra todas las variables y no se pueden recuperar.
Funciones trigonomtrica
SQRT (X) Raz cuadrada
SIN (X) COS (X) TAN( X )
SEC(X) CSC (X) COT(X)
ASIN ( X ) ACOS ( X ) ATAN ( X ) Inversa
SINH ( X ) COSH ( X ) TANH ( X ) Hiperblica
ASINH ( X ) ACOSH ( X ) ATANH ( X ) Inversa- Hiperblica
ATAN2 ( X,Y ) Inversa de la tangente en los cuatro cuadrantes.
LOGARITMOS Y EXPONENCIAL
Exp (X)
log (x) Logaritmo natural
LOG10 (x) Logaritmo decimal.
5

Funciones matemticas especiales.


abs (x) Valor absoluto o magnitud de un nmero complejo
ceil ( 123.123123) Redondea hacia ms infinito
FLOOR ( X ) Redondea hacia menos infinito
FIX ( X ) Redondea hacia cero
ROUND ( X ) Redondea hacia el entero ms prximo
imag ( 30 - 5j ) Parte imaginaria de un nmero complejo
REAL (X) Parte real de un nmero complejo
ANGLE (X) Angulo de un nmero complejo
CONJ (X) Complejo conjugado
sign ( -5) Funcin signo : Devuelve el signo del argumento
(1 si es positivo, -1 si es negativo)
exp ( 1 ) Exponencial : e ( x )
REM (X, Y) Resto despus de la divisin (x / y)
sqrt (x) Raz cuadrada
Operaciones Lgicas
En MATLAB se pueden hacer operaciones lgicas, por ejemplo.
1 < 2 Como 1 es menor que 2, la respuesta es cierta por lo que obtenemos un 1.
1 < 1 Obtenemos un 0, porque 1 no es menor que 1.
Como se puede observar las nicas respuestas posibles con las operaciones lgicas son :
Cierto = 1 y Falso = 0.
Operadores relacionales:
> Mayor que
< Menor que
>= Mayor o igual a
<= Menor o igual a
== Igual a
~= No igual a

Existen tres operadores lgicos:


AND &
OR |
NOT ~

Variables
NaN (Not a Number)
Cuando en un lenguaje de programacin como basic, pascal o C, se da una situacin que
el programa no pueda manejar, como una divisin como 0/0 el programa se detiene,
marcando un error.
Cuando en MATLAB se presenta una situacin similar el programa no se detiene, slo da
una pequea advertencia de que se present una divisin entre cero. Y el resultado es un
NaN, que es una variable interna no es un nmero).
Variables permanentes
Son aquellas con significado especial, y que no se pueden eliminar. Estas son por ejemplo
las variables ans y eps.
La variable eps es una tolerancia para determinar cosas como singularidad y rango.
La funcin Inf equivale a "infinito".
MATLAB tambin permite nmeros complejos, indicados por las variables especiales i y j,
en todas sus operaciones y funciones.

Entorno Matlab
El entorno de MATLAB est organizado mediante ventanas
Command Window: es la ventana de comandos para ejecucin de instrucciones
Command History: es el registro de los comandos que han sido ingresados.
Workspace: contiene la descripcin de las variables usadas en cada sesin.
Inicialmente, se sugiere dejar activa nicamente la ventana de comandos, cerrando las
otras ventanas.
Para restaurarlas use la opcin view de la barra de herramientas de MATLAB.

pwd
cd
dir

Present working directory


(directorio de trabajo actual)
cambiar de directorio
listado de los ficheros del directorio actual

Saliendo y Guardando el Espacio de Trabajo


Para salir de MATLAB se escribe quit exit.
Al terminar una sesin de MATLAB, las variables en el espacio de trabajo se borran. Si
deseas guardar tu espacio de trabajo escribes save. Save guarda todas las variables en un
archivo llamado matlab.mat.
Se puede utilizar save y load con otros nombres de archivos, para guardar solo variables
seleccionadas

Solucin de ecuaciones de segundo


grado
MATLAB se puede resolver fcilmente ecuaciones del tipo ax + bx + c = 0, hacindolo
como si fuera una sola instruccin. La frmula para resolver una ecuacin de segundo
grado de este tipo es:

Si tenemos los siguientes valores:


a = 1, b = 2, c = 3
Escribimos la formula para x1:
x1, x2 = ( -b sqrt ( b ^ 2 - 4 * a * c )) / 2 * a
Arreglos (Arrays) o Vectores
Si se desea calcular el seno de " 0 a 1 " con incrementos de 0.25, se pueden capturar los
valores y despus mandar llamar el seno de la funcin.
Seno de 0 a 1 con incrementos de 0.25
x = [ 0, 0.25, 0.5, 0.75, 1 ]
Con los nmeros capturados, se obtiene el seno de la variable x escribiendo simplemente:
sin (x)
MATLAB opera en radianes, donde 2P = 360 grados.
Si queremos saber cual es el cuarto elemento del vector ponemos:
Y (4)
Modificaciones de los arreglos
Si el noveno elemento del array debi ser el nmero 20 en vez de 8, corregimos de la
siguiente manera:
Y (9) = 20
Otra forma de hacer arreglos, es con linspace:
Linspace (Valor inicial , Valor final , Nmero de elementos)
Regresando al ejemplo del coseno de 0 a 1 con incremento de 0.01 escribimos:
Note el uso de comas (#, #, #)
Z = linspace(0 , 10, 101)
Linspace describe una relacin lineal de espaciado entre sus elementos
Logspace describe una relacin de espaciado " logartmica"
Logspace ( Primer exponente , ltimo exponente , Cantidad de valores )
8

Matemticas con arreglos


a = 1 : 6 Define un vector de seis elementos con incrementos de 1
b = 1 : 2 : 12 Vector de seis elementos con incremento de 2
Arreglos con escalares
Se le puede sumar o multiplicar un nmero a todo el arreglo, por ejemplo
a + 10 Suma de un escalar con un arreglo
a * 10 Multiplicacin de un escalar con un arreglo
Operaciones con arreglos
Para hacer la suma de los arreglos a y b, solamente escribimos:
a + b La respuesta se guarda en ans
Se pueden hacer operaciones como:
Z = 100 - 2 * a + b
La multiplicacin de arreglos se hace con ( . * ), ya que cuando se utiliza el asterisco sin
punto indica multiplicacin matricial, y adems provoca un error.
Z = a .* b
La divisin tambin lleva un punto antes del signo, porque si no se utiliza el punto nos
referimos a la divisin matricial que es muy diferente.
Z = a ./ b
Orientacin de arreglos
Si separamos cada elemento del arreglo con punto y coma tenemos un arreglo de una
sola columna:
a = [ 1; 2; 3; 4; 5; 6 ]
Es necesario usar los corchetes, porque si no los usamos obtenemos el ltimo valor que
capturamos
Para crear una columna con 20 elementos hacemos lo siguiente:
d = ( 1 : 1 : 20 )
y trasponemos el rengln a columna, es decir buscamos la transpuesta. ( ' )
e = d'

Matrices
Se utiliza el punto y coma ( ; ) para definir las filas de una matriz.
Se puede determinar el tamao de un vector con la funcin length. Para determinar el
tamao de una matriz se puede utilizar la funcin size.
Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
v1=M(:,2)
v1 = 2
5
8
Ecuaciones Simultneas
Con MATLAB se pueden resolver sistemas de ecuaciones simultneas fcilmente.
Por ejemplo para resolver el siguiente sistema de ecuaciones.
2x + 0y + 5z = 100
3x + 5y + 9z = 251
1x + 5y + 7z = 301
Capturamos los valores de x, y, z ; formando una matriz.
A = [ 2 0 5; 3 5 9; 1 5 7]
Despus capturamos el valor al cual estn igualadas las ecuaciones en otra matriz.
b = [ 100 ; 251; 301 ]
Una forma de solucionar las ecuaciones es obteniendo el inverso de la matriz, es decir : A 1 ( menos uno )
El asterisco indica multiplicacin matricial.
c = inv (A)* b
Otra forma de resolverlo, es utilizando la divisin matricial.
c=A\b
Es tambin posible obtener la determinante de una matriz.
det ( A )
Operaciones con Matrices
Definamos las siguientes matrices ' g ' y ' h'
g = [ 1 2 3; 4 5 6; 7 8 9]

h = [ 1 0 2 ; 11 2 3 ; 3 5 12 ]

La suma de las matrices g y h se muestra enseguida:


k=g+h
k = g * h Multiplicacin de dos matrices.
Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto antes del
operador.
rank(k) Devuelve el rango de la matriz k.
poly polinomio caracterstico
det determinante
trace traza
kron producto tensorial de Kronecker
eig calcula los valores propios de la matriz

*Estas operaciones especiales estn definidas solamente para matrices cuadradas.*


10

Modificacin de las matrices


A = [ 1 2 3; 4 5 7; 7 8 9 ]
Si nos equivocamos al capturar la matriz, por ejemplo si el nmero 7 del segundo rengln,
tercera columna debi ser 6 en vez de 7, tendramos que capturar de nuevo la matriz.
Pero con MATLAB es posible modificarla de la siguiente manera :
( rengln, columna)= nuevo valor
Si tenemos la matriz identidad de 4 x 4 :
1000
0100
0010
0001
A = [ 1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]
Para aadir otra fila a la matriz A podemos hacer lo siguiente:
r = [10 11 12];
A = [A; r]
Pero por algn error la matriz identidad debi de haber sido de 5 x 5.

Hay que capturar de nuevo la matriz ?. La respuesta es no.

A(5,5) = 1
Agregamos un 1 en el rengln 5 columna 5, y como este no existan previamente,
las columnas y renglones se completan agregando ceros.
Qu pasa ahora si queremos slo una matriz identidad de 3 x 3 y tenemos
capturada una de 5 x 5?
Podemos utilizar:
Matriz ("Rengln" inicio : Fin , "Columna" inicio : Fin )
B = A ( 1 : 3, 1: 3)
A partir de la matriz A queremos tomar las columnas 1, 2 y 5, y de la matriz B queremos
tomar las columnas 1 y 3, para formar una matriz D.
D = [ A(:,[ 1 2 5]) B(:, [ 1 3])]
D ( :,1)=[] Elimina la columna nmero uno.
Matrices especiales
ones(2) Hace una matriz de unos, de 2 x 2.
zeros(5,4) Hace una matriz de ceros, de 5 x
4.
rand(3) Hace una matriz de 3 x 3,
eye(4) Hace una matriz identidad de 4 x 4.

Manipulacin de Matrices
diag - extrae o crea una diagonal
tril - parte inferior triangular
triu - parte superior triangular
' - transposicin

11

Exponentes con Arreglos


La funcin any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero, de lo
contrario devuelve 0.
La funcin all(x) devuelve 1 solamente si todos los elementos de x son diferentes de cero.
Estas funciones se usan en clusulas if. Por ejemplo:
if all(A <.5)
...
end
Aplicando la funcin dos veces, any(any(A)), siempre reduce la matriz a una condicin
escalar.
Las funciones relacionales y lgicas en MATLAB son:
any - condiciones lgicas
all - condiciones lgicas
find - halla ndices de arreglos de valores lgicos
exist - verifica si existen variables
isinf - detecta infinitos
finite - verifica para los valores finitos
fix - redondeo hacia cero
(Para ms informacin: help elmat)

12

Grficas
Las posibilidades de Matlab son muy grandes.
Entre los muchos comandos que se pueden utilizar para modificar los grficos, es muy til
el empleado para cambiar la escala de los ejes. La orden es
axis([x1 x2 y1 y2])
En MATLAB se pueden crear grficas tan simples como:
D = [ 1 2 3 5 4 7 6 8 9 8 6 3 1 3]; plot (D)
O se pueden crear grficas tan complejas como:
cplxroot(3,10) Superficie de una raz cubica.
Por ejemplo, para graficar la funcin seno se pueden crear un rango de valores
x = 0 : 0.1 : 20; x = vector de cero a veinte con incrementos de 0.1
y = sin(x); Seno del vector (x)
plot (x,y) Grfica del seno
z = cos(x); Coseno del vector anterior
plot (x,z) Grfica del coseno de x.
plot ( x,y,x,z) Grfica del seno y coseno en la misma pantalla
plot (x,z,'*') Grfica del coseno con los signos ' * '
Hace la grfica en azul, y los signos ' + ', intercambiando los ejes.
plot ( z, x,'b+')
Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load.
Como se ve es posible grficar en Matlab con smbolos y adems escoger el color, tal
como se muestra en la tabla inferior.
Smbolo

Color

Smbolo

Estilo de lnea

amarillo

punto

magenta

circulo

can

equis

rojo

ms

verde

asterisco

azul

menos

blanco

dos puntos

negro

-.

menos punto

--

menos menos

Es posible agregar un cuadriculado a la grfica, para tener ms precisin, con el comando.


grid
Se pueden agregar ttulos a las grficas y etiquetas en los ejes con los comandos
siguientes. Title (' Grfica del coseno de x')
13

Para ponerle etiquetas a los ejes se puede utilizar los comandos


ylabel ('etiqueta')
xlabel('etiqueta')
axis off Desaparece los ejes.
text aade una cadena de texto en una localizacin especfica
gtext aade texto a la grfica utilizando el ratn
Subplot
El comando subplot nos permite desplegar en pantalla varias grficas.
subplot(m,n,a)
'm' y 'n' son una matriz que representa las cantidades de grficas que se van desplegar; 'a'
indicara el lugar que ocupara la grfica en el subplot.
Hagamos la grfica de los siguientes puntos. La desplegaremos en cuatro puntos
diferentes en pantalla para ver las caractersticas de subplot.
a=[ 1 ,2 ,3 9 ,8 ,7 ,4, 5, 6, 8, 7, 5];
plot (a)
Vamos hacer una matriz de 2 x 2 para graficar, cuatro posibles ventanas o grficas. Y
queremos que la primera grfica ocupe el lugar (1,1) de la matriz. entonces escribimos.
subplot(2,2,1) ,plot(a)
Para poder ver dos grficas al mismo tiempo, solo tengo que escribirlo todo junto, una
expresin al lado de la otra.
CLF borra todos los objetos de la grfica.
CLF RESET Borra todo lo que hay en la grfica y resetea todas las propiedades de la figura.
Grficas en tres dimensiones.
El comando plot se puede extender a 3 dimensiones con el comando plot3.
El siguiente ejemplo hace una grfica de una espiral en tres dimensiones.
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
zlabel ('etiqueta')
Se utiliza para dar etiquetas al eje z, en las grficas en tres dimensiones.
Grficos de malla y superficie.
z = peaks(10)
El comando peaks crea un conjunto de valores que al ser graficados, se ven de la siguiente
manera.
plot(z)
mesh(z) grafica en 3d, las grficas 2d
contour(z,10) CONTOUR(Z) is a contour plot of matrix Z treating the values in Z as
heights above a plane. ??
surf(z)

Grficas en el plano complejo


14

Ahora vamos a crear un conjunto de valores para grficar en el plano complejo, en tres
dimensiones.
z= cplxgrid(5)
cplxmap(z,z)
cplxmap(z,z.^z)
cplxroot(2,10) Raz cuadrada
Se pueden crear grficos en coordenadas polares con el comando Polar (t,r,s) donde t es el
vector en ngulos en radianes, r es el radio del vector y s es la cadena de caracteres que
describe , color, smbolo del estilo del lnea.
t=0:0.1:2*pi;
r = sin(2*t).*cos(2*t);
polar(t,r)
gtext( texto )
Se utiliza para colocar texto en una grfica, con la ayuda del mouse. Simplemente se
ejecuta el comando y con el mouse se selecciona la coordenada deseada y se presiona el
botn derecho del mouse, quedando fijo el texto en la pantalla.
Copiar una grfica
Cuando se quiera realizar algn reporte formal en un procesador de palabras como en
este caso Word, es posible copiar las grficas hechas en Matlab por medio de la orden

copy to bitmap.

El procedimiento sera:
En Matlab, en el men de la ventana principal de la grfica, se escoge el men edit y
de este se escoge copy figure;
Se minimiza Matlab y se pasa al procesador de palabras escogido
Se localiza la posicin en la cual estar la grfica, y del men edit se escoge paste o
pegar.
La grfica aparecer en el procesador de palabras.

Para ms informacin, o para conocer la versatilidad de Matlab: captulo Handle


Graphics Object del Help Desk, el manual Using MATLAB Graphics o la ayuda en
lnea help graph2d.

15

Otros comandos
What : Listado de todos los archivos *.m en el directorio actual
dir : Lista todos los archivos en el directorio actual
type nombre_archivo : Lista el programa, (Programas con terminacin *.M).
Which nombre_archivo : Da el path en el cual esta el archivo.
Se pueden utilizar comandos de Unix tales como Ls, pwd.

Como hacer un programa en MATLAB


Es posible realizar un programa en Matlab tal como se hace en otros lenguajes como el
basic, pascal o el lenguaje C. Es necesario utilizar un editor para escribir el cdigo.
Para cargar un editor, se puede hacer desde la ventana options, escogiendo editor
preference, y cargando el editor que se desee utilizar.
Para escribir cdigo, requerimos crear un archivo *.M. Para esto necesitamos abrir new
M.file en la ventana file.
Ahora escribimos el cdigo y guardamos el archivo utilizando la terminacin archivo.M.
Se puede correr el programa desde Matlab simplemente escribiendo el nombre del
archivo que fue creado.
Es posible abrir programas con la terminacin *.M desde Matlab, en el men file, open
M.file.
A. Bucles For
Tal como en otros programas de programacin en Matlab es posible crear programas
con estructura con ciclos for. El ciclo FOR permite que una instruccin, grupo de
instrucciones, pueda repetirse un nmero determinado de veces.
Es importante que para cada for exista un end.
For x = Nmero incial : nmero
final

for x = 1 : 10

Instruccin

x=x+1

End.

end

B. Bucles while
Permite que ciertas instrucciones sean repetidas un nmero indefinido de veces bajo el
control de una condicin lgica.
Por ejemplo, Cual es primer entero n para el cual n! es un nmero de 100 dgitos?
n = 1;
while prod(1:n)<1.e100
n=n+1
end
n

16

C. Enunciados IF y BREAK
Partiendo de un entero positivo n, si este es par, se divide entre dos; si es impar, se
multiplica por tres y se le suma uno. Habr algn entero para el cual el proceso nunca
termine? Aqu se ilustran los enunciados while y if, tambin se muestra la
funcin input (en este caso es una entrada del teclado), y el enunciado break, que
provee salidas abruptas de los ciclos. Veamos:
% Problema "3n+1" clsico de la teoria de nmeros.
while 1
n = input('Entre n, negativo termina. ');
if n <= 0, break, end
while n > 1if rem(n, 2) == 0
n = n/2
else
n = 3*n+1
end
end
end
D. IF ELSE END
Se pueden utilizar estructuras como:
If expresin (verdadero)
accin 1
else if expresin (verdadero)
accin 2
...
else (Falso)
accin "n"
End

17

Anlisis de datos
En Matlab podemos hacer anlisis de datos estadsticamente o probabilsticamente. Entre
estos anlisis estn clculos de medias, mximos, mnimos, desviaciones estndar, etc.
Inventemos un conjunto de datos, los cuales podremos analizar.
x =[ 9 1 ;23 34; 16 28 ;12 33 ;5 7; 9 4 ;12 34 ;5 14 ;43 6 ;3 6 ;12 9; 2 30 ;3 2; 2 4]
plot (x) La representacin grfica de los puntos anteriores.
A continuacin se hace una anlisis de los datos presentados, habr dos respuestas
porque tenemos dos columnas.
media=mean(x) Obtencin de la media
max(x) El mximo de los valores.
min(x) El mnimo de los todos los valores
std(x) La desviacin estndar
hist(x) Histograma.
Interpolacin (correlacin)
Matlab tiene varios comandos que nos permiten hacer interpolaciones, uno de
los mtodos es por medio de mnimos cuadrados.
Mnimos cuadrados
Se crean varios puntos.
x = [ 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1 ];
y =[ 0.09 .12 .24 .27 .4 .45 .61 .67 .71 .63 .59];
se muestra los puntos a los cuales se les va a interpolar
plot (x,y,'*')
Polinomios
MATLAB puede sacar las races de un polinomio. Para capturar el polinomio de abajo,
solamente ponemos el valor de cada variable, respetando su lugar. Como no hay termino
x1, de todos modos se captura como cero.
X3 + 5x2 - 2
p = [1 5 0 -2]
Para sacar las races escribimos.
r=roots(p)

18

Otros
Archivos-M: Comandos y Funciones
Un archivo-M consiste de una secuencia de instrucciones normales de MATLAB, que
probablemente incluyen referencias a otros archivos-M.
Los archivos de disco que contienen instrucciones de MATLAB se llaman archivos-M. Esto
es as porque siempre tienen una extensin de .m.
Ecuaciones No-lineales y Funciones de Optimizacin
Las funciones de funciones para ecuaciones no-lineales y optimizacin incluyen:
fmin - mnimo de una funcin de una variable
fmins - mnimo de una funcin multi-variable (minimizacin no-lineal sin restricciones)
fzero - cero de una funcin de una variable
constr - minimizacin con restricciones
fsolve - solucin de ecuacin no-lineal
leastsq - cuadrados mnimos no-lineales
Funciones para Ecuaciones Diferenciales
Las funciones de MATLAB para resolver problemas de valor inicial para ecuaciones
diferenciales ordinarias son:
ode23 - mtodo Runge-Kutta de largo de paso variable que combina un mtodo de orden
dos con uno de orden tres.
ode45 - mtodo Runge-Kutta-Fehlberg de largo de paso variable que combina un mtodo
de orden cuatro con uno de orden cinco.
Archivos de Comandos
Cuando un archivo de comandos es invocado, MATLAB simplemente ejecuta los comandos
encontrados en dicho archivo. Las instrucciones en un archivo de comando operan
globalmente en los datos en el espacio de trabajo. Los comandos son utilizados para hacer
anlisis, resolver problemas, disear secuencias largas de comandos que se conviertan
en interactivas. Por ejemplo, suponga que el archivo fibro.m contiene los siguientes
comandos de MATLAB:
% An M-file to calculate Fibonacci numbers
f = [1 1]; i = 1;
while f(i) + f(i+1) < 1000
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
plot(f)
Si escribimos fibro en una ventana de MATLAB seguido de "enter" vemos que MATLAB
calcula los primeros 16 nmeros de Fibonacci, y luego grafica estos. Luego que la
ejecucin del archivo es completada, las variables f y i permanecen en el espacio de
trabajo.
Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar
comandos para hacer tareas ms complicadas. Para utilizar estos escriba demos en el
"prompt" de MATLAB.
19

Archivos de Funciones
Un archivo-M que contiene la palabra function al principio de la primera lnea, es
un archivo de funcin. En una funcin, a diferencia de un comando, se deben de pasar los
argumentos. Las variables definidas y manipuladas dentro de la funcin son locales a esta
y no operan globalmente en el espacio de trabajo. Los archivos de funciones se utilizan
para extender a MATLAB, i.e., crear nuevas funciones para MATLAB utilizando el lenguaje
propio de MATLAB.
El archivo mean.m en el disco contiene las instrucciones:
function y = mean(x)
% Mean average or mean value.
% For vectors, mean(x) returns the mean value.
% For matrices, mean(x) is a row vector
% containing the mean value of each column.
[m, n] = size(x);
if m == 1
m = n;
end
y = sum(x)/m;
(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). La
existencia de este archivo en el disco duro define una nueva funcin en MATLAB
llamada mean. Si z es un vector de los enteros desde 1 a 99, i.e.,
z = 1:99;
entonces, el valor promedio es encontrado escribiendo
mean(z)
que resultara en
ans = 50
Veamos algunos detalles de mean.m:
La primera lnea declara el nombre de la funcin, los argumentos de entrada, y los
argumentos de salida. Sin esta lnea sera un archivo de comando.
% indica que el resto de la lnea es un comentario.
Las primeras lneas documentan el archivo-M y aparecen en la pantalla cuando
escribimos help mean.
Las variables m, n, y y son locales a mean y no existen en el espacio de trabajo. (O si
existen, permanecen sin cambios.)
No es necesario asignar los enteros de 1 al 99 en la variable x. Utilizamos mean con una
variable llamada z. Este vector que contena los enteros de 1 a 99 fue pasado copiado
a mean donde se convirti en una variable local llamada x.

20

Como mejorar la Rapidez y uso de Memoria de los Programas


Para que los programas en MATLAB ejecuten ms rpido, debemos vectorizar estos
siempre que sea posible. Esto es, debemos convertir los ciclos for y while a operaciones de
vectores de matrices. Por ejemplo, un modo de calcular la funcin "sin" para 1001
nmeros entre 1 y 10 es:
i = 0;
for t = 0:.01:10
i = i + 1;
y(i) = sin(t);
end
Una versin vectorizada del mismo cdigo es
t = 0:.01:10; y = sin(t);
En una computadora lenta, el primer ejemplo tom 15 segundos, mientras que el segundo
tom 0.6 segundos.
Vectores Pre-Asignados
Si no podemos vectorizar un pedazo de cdigo, podemos hacer que los ciclos for vayan
ms rpido pre-asignando cualquier vector en el cual el resultado de salida sea guardado.
Veamos un ejemplo:
y = zeros (1,100);
for i = 1:100
y(i) = det(X^i);
end
Si no pre-asignamos el vector "y", el interpretador de MATLAB ir aumentando el tamao
de "y" por uno cada vez que se itera en el ciclo.
Manipulacin de Archivos de Disco
Algunos comandos utilizados para
son dir, type, delete y cd.

la

manipulacin

de

archivos

de

disco

Si la extencin no se especifica, MATLAB utiliza .m automticamente. El


comando diary crea un diario de tu sesin de MATLAB en un archivo de disco. Para ms
informacin utiliza la Gua de Referencia de MATLAB el comando help.

21

Você também pode gostar