Anda di halaman 1dari 20

Tema 1.

5
Programacin en MatLab

1.5 Programas en Matlab


Bifurcaciones y bucles Lectura y escritura interactiva de variables Ficheros .m m Ficheros de comandos Ficheros de funciones Sub-funciones Sub funciones

Programas en Matlab
Se puede programar en Matlab igual que en cualquier lenguaje de programacin. La escritura de un programas, concluye con la creacin de un conjunto de cdigo que puede ser reutilizado en mltiples aplicaciones. En general se programan funciones que pueden ser accedido en mltiples instancias. Un conjunto de funciones generalmente con un objetivo funciones, comn, es lo que constituye una herramienta (toolbox) de Matlab. Uno puede crear sus propias funciones y por lo tanto desarrollar un toolbox para una aplicacin en particular. particular
3

Bifurcaciones y bucles
Las bifurcaciones permiten realizar una u otra operacin segn se cumpla o no una determinada condicin. Los bucles L b l permiten repetir l mismas o it ti las i anlogas operaciones sobre datos distintos.
4

Bifurcaciones
true Condicin 1 false
Condicin true Bloque 1 Bloque 2 false Bloque 3 Bloque 2 false Condicin 2 true

Bloque 1 q

Condicin true Sentencias

false

Sentencia IF Bifurcacin mltiple

if condicin1 if condicin sentencias end bloque1 elseif condicin2 bloque2 elseif condicin3 bloque3
Si no existe significa que no se existe, hace nada en caso de que no se cumplan las 3 condiciones

else l bloque4 end


6

Sentencia SWITCH S t i

switch switch expresion switch_expresion case case_expr1, bloque1

El resultado debe ser un escalar o un string

case {case_expr2, case_expr3, ...} bloque2 ... otherwise, h i bloque3 end


7

Sentencia FOR

for i = 1:n sentencias end

for i = vectorValores sentencias end for i = 1:m

for i = n:-0.2:1 sentencias end

for j = 1:n sentencias end end d


8

Sentencia WHILE

Sentencia BREAK Hace que se termine la ejecucin

while condicin sentencias end

Gestin de errores Sentencia CONTINUE Hace que se pase inmediatamente a la sgte sgte. iteracin del bucle for o while try sentencia1 catch sentencia2 end
9

Lectura y escritura interactiva de variables


Funcin input >>n=input(teclee un nmero) >>nombre=input(como t llamas? , s) >> b i t( te ll ? ) Funcin disp >>disp(el programa t di ( l termin) i ) >>disp(var) d sp( a )
10

Ficheros *.m m
Los ficheros *.m son ficheros de texto m en formato ASCII que constituyen el centro de la programacin en MatLab MatLab. Existen 2 tipos de ficheros *.m: los ficheros de comandos y las funciones funciones.

11

Ficheros de comandos
Los ficheros de comandos (scripts) contienen una sucesin de comandos anloga a la que se tecleara en el uso interactivo del programa Cuando se ejecutan estos ficheros las variables creadas por este fichero pertenecen al espacio de trabajo base d M tL b d t b j b de MatLab Comando echo C d h

12

Funciones
La primera lnea de un fichero llamado name.m que define una f d fi funcin ti i tiene l f la forma:
Function [val de retorno] = name(argumentos)

Las variables definidas dentro de una funcin son variables locales, se puede decir que pertenecen al propio espacio de trabajo de la funcin.

13

En cualquier funcin existen dos variables definidas de modo automtico, llamadas nargin y nargout que representan nargout, respectivamente el nmero de argumentos y el nmero de valores de q retorno con los que la funcin ha sido llamada. A continuacin se da un ejemplo de un fichero de comando y de una funcin
14

Editor de Matlab

15

Ficheros de comandos

>> CM_eje_script >> whos Name Size Bytes Class x 200x1 1600 double array y 200x1 1600 double array Grand G d total i 400 elements using 3200 b l is l i bytes >>

16

Ficheros de funciones

>> clear all >> yout = CM_eje_funcion(200); >> whos Name Size Bytes Class yout 200x1 1600 double array Grand total is 200 elements using 1600 bytes >>

>> help CM_eje_funcion function [y] = CM_eje_funcion(N) _ j _ ( ) grafica y = sin(x) x es un vector aleatorio entre 0 y 2pi con N elementos >>
17

Funcin con nmero variable de argumentos


Formas de llamar >> angulo = atan3(x) >> angulo = atan3(x,y)

function varargout=atan3(varargin) if nargin==1 rad=atan(varargin{1}) elseif nargin==2 rad=atan2(varargin{1},varargin{2}) else disp(error, ms de 2 argumentos) end vararout{1}=rad; vararout{2}=rad*180/pi

Sub funciones Sub-funciones


Las subfunciones son funciones adicionales definidas en un mismo fichero *.m, con nombres m diferentes del nombre del fichero. function y=mi_func(a,b) y=subfun1(a,b); y=subfun1(a b); function x=subfun1(y z) x=subfun1(y,z) x=subfun2(y,z); function x=subfun2(y,z) x=y+z+2;
19

FIN Tema 1.5


Programacin en MatLab

20