You are on page 1of 127

Introduccin a Matlab

Objetivo
Presentar una introduccin a la programacin con Matlab y el uso de su ambiente de desarrollo. El alumno deber aprender las capacidades y limitaciones de este lenguaje interpretado as como comenzar su uso tanto en la plataforma de desarrollo como en la implementacin de programas en archivos .m l finalizar! el alumno deber ser capaz de manejar con fluidez el conjunto de instrucciones bsicas as como ser capaz de redactar y depurar programas .m "scripts#.
2

Matlab
El nombre M $% & proviene de Matrix Laboratory. El pa'uete de Matlab tiene un gran n(mero de funciones y toolboxes con los cuales se pueden resolver una amplia variedad de problemas de computo! especialmente a'uellos relacionados con operaciones matriciales y vectoriales. En Matlab se pueden escribir programas en tan slo una fraccin de tiempo de lo 'ue costara un desarrollo similar en otros lenguajes de programacin.

Matlab se compone de:


Herramientas de escritorio y ambiente de desarrollo
)ncluye el escritorio de M $% & y la ventana de comandos! un editor y depurador! un analizador de cdigo! navegadores para revisar la ayuda! y un sistema de administracin de archivos entre otras herramientas.

Librera de funciones Matemticas


mplia coleccin de algoritmos de cmputo 'ue van desde lo ms elementales como seno y coseno! hasta las funciones ms sofisticadas como inversin de matrices! matriz de eigenvalores! funciones de &essel y transformada rpida de *ourier.

Matlab se compone de:


El Lenguaje
El lenguaje de M $% & es de alto nivel con funciones de control de flujo de programa! funciones! estructuras de datos! entradas! salidas y soporte para programacin orientada a objetos.

rficos
M $% & proporciona herramientas para presentar vectores y matrices de manera grfica! as como para editarla e imprimirlas. )ncluye funciones 'ue permiten modificar la apariencia de las grficas as como desarrollar interfaces grficas 'ue interaccionen con el usuario.

Interfaces e!ternas
%a librera de interfaces e+ternas permite enlazar rutinas de M $% & con programas escritos en , o *ortran.

"entana principal de Matlab

Introduccin
#epurador
Set/Clear breakingpoint- ,oloca o borra un punto de interrupcin de programa en la lnea en 'ue est colocado el cursor Clear all breakingpoints:- &orra todos los puntos de interrupcin Step: vanza un paso en el programa Step in: vanza un paso en el programa y si en ese paso se llama a una funcin! entra en dicha funcin Step out: vanza un paso en el programa y si en ese paso se llama a una funcin! entra en dicha funcin Continue: ,ontinua ejecutando hasta el siguiente punto de ruptura Quit debugging: $ermina la ejecucin del depurador

,&meros y operaciones
#atos num$ricos:
.o hace falta definir variables enteras! reales! etc. como en otros lenguajes .(meros enteros- a/2 .(meros reales- +/012.2 M+imo de 34 cifras significativas 2.21e01/2.2153601 %recisin y formatos: Por defecto tiene un formato corto! pero se pueden usar otros 77 format long "38 cifras significativas# 77 format short "2 cifras significativas# 77 format short e "notacin e+ponencial# 77 format long e "notacin e+ponencial# 77 format rat "apro+imacin racional#

"er en men& de 'ile: %references ( )ommand *indo+s

%referencias -en el men& de 'ile.

"ariables
.o se re'uiere 'ue su tipo sea definido! M $% & se encarga

int a; double b; float c;

$odas las variables al crearse se definen de doble presicin a menos 'ue se especifi'ue lo contrario.

Example: >>x=5; >>x1=2;

%as variables son consideradas por M $% & como matrices de 3+3

"ariables
signar

a / 01 b / 2

%istar

Ejemplo de n(meros vlidos0 676668 8796;86e4;6 8i 0e=i 455 57905:;0< 976;;=;e;0 407828=5j

ans +3o +3os clear b clear all

Eliminar

,&meros )omplejos
*orma binmica
z = 3 + 4i

Parte real e imaginaria


real(z) imag(z)

Mdulo y argumento
abs(z) angle(z)

,omplejo conjugado
conj(z)

9epresentacin grfica
plot(z,'*') compass(z)

)onstantes y cadenas
.(mero pi

*ormatos num;ricos

:nidad imaginaria- i,j Precisin)nfinito)ndeterminacineps

format long format s!ort format rat

Inf NaN

,adenas de caracteres
'Esto es una ca ena' Esto no

'unciones
3elp elfun

"+1<3#=+ ? > 8 2 6 02 08 0> 02 6 + 2

sin cos tan e+p

asin acos atan log

e>plot "+1<3#=+

"ectores
Edicin
u = & = ' = ' = $ 3% "# $ 3% "#,$,3% "#($(3% "#

.ormas
norm(&,$) norm(&,#) norm(&,inf)
3 6.? 6.> 6.8 6.2 6 06.2 06.8 06.> 06.? 03 03 06.> 06.2 6.2 6.> 3

Progresivos
)*)+#*#) linspace(),#,##)

"ectores y Matrices
7 + / @3 2 2 3A +/ 3 2 2 3 7 B / @3 2 1C 2 3 8C 1 2 03A B/ 3 2 1 2 3 2 1 8 03 y/ 3 2 2 3

$ranspuesta y / +D

Intervalos en "ectores y Matrices


7 t /3-36 t/ 3 2 1 8 2 > E ? 4 36 7 F /2-06.2-03 F/ 2 3.2 3 6.2 6 06.2 03 7 + / @3-8C 2-?A +/ 3 2 2 > 1 E 8 ?

)oncatenacin de Matrices
7 + / @3 2A! y / @8 2A! z/@6 6A 7 /@+ yA 3 2 8 2 7 & / @+ C yA 32 82 7 , / @+ y CzA
ErrorGGG Error using //7 vertcat , $ arguments dimensions are not consistent.

Operaciones con vectores


HumaProductos
por escalar escalar elemental matricial de elemtos $*u ot(u,&) u+*& u*', '*u pro (u) u+&

$ranspuesta- u' Ioltear


fliplr(,) flipu (,')

de elementos sum(u)

*unciones
, = -#*)+)#*# . = tan!(,) plot(,,.)

Matrices
Edicin
/ = "#,$(3,4% 0 = "-# -$ -3 -4%

&lo'ues
1 = "/,0(0,/%

Hub0matrices
14# = 1(#*3,$*4) fil = "#,$,4% col = "#,3,4% 13$ = 1(fil,col)

Elemento- /($,#) *ila/($,*)

,olumna- /(*,#)

Operaciones con matrices


Huma y resta- + ProductoPotencia* 2 +* +2 +3 +4 +'

Jeterminante
K et(/)

)nversa
in&(/)

,ociente iz'.- 3 ,ociente der.- 4 $ranspuesta'

9ango
ran5(/)
(&ect+ in epen ientes)

?rreglos multi4dimensionales
:na manera de crear arreglos multi0dimensionales es a trav;s de las funciones zeros! ones! rand! o randn con 3! 2 o ms argumentos. E.g.: 9 / randn"1!8!2#C crea un arreglo de 10por080por02 con un total de >6 " 15852 # elementos cuyos valores estn aleatoriamente distribuidos.

Matrices usuales
)dentidad de orden n.ula de tamaLo mMnMatriz de unosMatriz aleatoriaMatriz de Nilberte.e(n) zeros(m,n) ones(m,n) ran (m,n) !ilb(n)

Matriz de van der Monde- &an er(,)

)opiado de datos desde E!cel


El editor de variables=arreglos de M $% & permite copiar datos directamente desde una hoja de E+cel.

3# En E+cel seleccione los datos y presione la opcin de copiar 2# Naga doble clicF en la variable donde desee guardar los datos Esta accin abrir el editor de arreglos de M $% & 1# Jentro del Editor haga clicF derecho en el primer elemento y seleccione OPaste E+cel JataP

)opiado de datos desde E!cel

?rreglos multivariables
El elemento "i!j# se refiere a la observation Q i de la variable j.

E7g7: @ Heart rate

@ *eig3t

@ Hours e!ercise per +eeA

J / @ E2 318 1.2 ?3 263 1.2 >4 32> E.3 ?2 38? 2.8 E2 3E6 3.2 A hora se pueden emplear funciones de anlisis de M $% & para este set de datos. E.g.- mu / mean"J#! sigma / std"J#
mu / E2.? 3>3.? 22.844 1.8? 2.236E sigma / 2.>161

%olinomios
p" x # = x 5x + 34 x7 3
2 3 3 2

,oeficientes Ialor de p en +9acesMultiplicacinJivisin con resto-

p="$33 -6 3433 -7% pol.&al(p,,) roots(p) con&(p,8) "8,r% = econ&(p, )

Bespaldando o cargando a arc3ivo


%as variables 'ue se encuentran en el entorno de trabajo pueden ser salvadas o recuperadas de archivo mediante las instrucciones save y load

M $% & respaldar los datos o los tomar de archivos listados en la ruta proporcionada o del actual directorio

Para respaldar use77 save *ileR.ame @variable variable SA Para cargar use 77 load *ileR.ame @variable variable SA

rficos
M $% & provee una variedad de herramientas para el desplige y visualizacin grfica de los datos. Permite al usuario manipular de manera interactiva ciertos aspectos de los grficos! tales como! punto de vista! escala! etc. de manera 'ue permitan una mejor visualizacin de la informacin %os grficos tamben pueden ser editados! imprimidos o e+portdos a distintos formatos y pa'uetes de cmputo.

rficos: 'unciones bsicas


Es posible imprimir directamente vectores plot"nombreRdelRvector# En este caso se imprime el valor del vector contra su ndice. Para el caso de 'ue se tengan 2 vectores plot"+!y# Produce una grfica de y "dependiente# vs + "independiente#. Para el eti'uetado de los ejes y la propia grfica se cuenta conT+labelD! TylabelD! y TtitleD E.g.+label"U+ / 6-2VpiU# ylabel"UHeno de +U# title"UWrfica de la funcin HenoU!U*ontHizeU!32#

rficos: 'unciones bsicas


77 + / @6-6.3-25piA 77 y / sin"+# 77 plot"+! y! Tr.0D#
1 0.8 0.6 0.4 0.2

En el ejemplo! el estilo de la lnea se defini mediante,olor%inear! b! g! c! F! y etc. 0 00 - .0 Marcador- . < 5 + o 7 etc.

0 -0.2 -0.4 -0.6 -0.8 -1

77 help plot enlista todas las opciones

rficos: 'unciones bsicas


Wraficas de matrices
M $% & considera cada columna como un set de datos distinto
0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

10

rficos: 'unciones bsicas


Multiples pares de argumentos +0y se pueden conjuntar en una sla grfica 77 + / 6-pi=366-25piC 77 y / sin"+#C 77 y2 / sin"+0.22#C 77 y1 / sin"+0.2#C 77 plot"+!y!+!y2!+!y1#

rficos: 'unciones bsicas


Hold on / off es otra manera de dibujar distintas series en la misma grfica Sin Plots
2

CC ! / D6:678:;EpiFG CC y / sin-!.G CC plot-!1 y1 HbE4H. CC 3old on CC plot-!1 yE;1 Ir74H. CC title-HJin %lotsH.G CC legend-Hsin-!.H1 H;Esin-!.H.G CC a!is-D6 97; 4; ;F. CC !label-I!K.G CC ylabel-IyK.G CC 3old off
y

1.5 1 0.5 0 -0.5 -1 -1.5 -2

sin(x) 2*sin(x)

3 x

rficos: 'unciones bsicas

Plotting data
0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

77 results / rand"36! 1# 77 plot"results! Ub5U# 77 hold on 77 plot"mean"results! 2#! Tr.0D#

10

rficos: 'unciones bsicas


Wrficas con barras de error XerrorbarK
77 errorbar"mean"data! 2#! std"data! @ A! 2##
Mean test results with error bars 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

10

12

rficar: sin-!. para el intervalo 6L!L2M


,rear un arreglo x de 366 muestras entre 6 y 8Y. ,alcular el seno del arreglo x Wraficar el resultado y
1 0.8 0.6

77 +/linspace"6!85pi!366#C 77 y/sin"+#C 77 plot"y#

0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

10

20

30

40

50

60

70

80

90

100

rficar: e4!N0sin-!. para 6L!L2M


,rear un arreglo x de 366 muestras entre 6 y 8Y. ,alcular el seno del arreglo x ,alcular el e+ponente e-x/3 Multiplicar los arreglos y y y1 Wraficar el resultado y2
0.7 0.6 0.5 0.4 0.3 0.2 0.1

77 +/linspace"6!85pi!366#C 77 y/sin"+#C 77 y3/e+p"0+=1#C 77 y2/y.5y3C Z mult 30a03 77 plot"y2#

0 -0.1 -0.2 -0.3 0 10 20 30 40 50 60 70 80 90 100

%lot vs Jtem

0 .7 0 .6 0 .5 0 .4 0 .3 0 .2 0 .1

77 +/linspace"6!85pi!366#C 77 y/sin"+#C 77 y3/e+p"0+=1#C 77 y2/y.5y3C Z mult 30a03 77 plot"y# 77 plot"y2# 77 stem"y# 77 stem"y2#

0 -0 .1 -0 .2 -0 .3 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 1 0 0

0 .7 0 .6 0 .5 0 .4 0 .3 0 .2 0 .1 0 -0 .1 -0 .2 -0 .3 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 1 0 0

#isplay 'acilities
0.7 0.6

plot".#
Example: >>x=linspace(0,4*pi,100); >> =sin(x); >>plot( ) >>plot(x, )

0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 0 10 20 30 40 50 60 70 80 90 100

stem".#
Example: >>stem( ) >>stem(x, )

0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 0 10 20 30 40 50 60 70 80 90 100

Oipos de grficos -;#.


,artesianas
e>plot fplot plot
326 46 326 6.2 6.22 3?6 6 3 6.E2 16 >6

Polares
polar

Param;tricas
plot 77 help graph2d
236 286 2E6 166 116

rficos de datos )omplejos


,uando los argumentos de la instruccin plot son complejos la parte imaginaria es ignorada ex epto cuando se usa un (nico argumento plot"[# %o 'ue resulta e'uivalente aplot"real"[#!imag"[##
77 z3/@3<2jC2<>jC108jC0201jC03<1jAC 77 plot"z3# 77 ylabel"U)maginaryU#C 77 +label"U9ealU#C

rficos de datos )omplejos


%a instruccin feat!er permite graficar valores complejos a manera de flechas en grfica.
K z3/3<2jC K z2/1<1jC K z1/1<jC K feather"z3!UrU#C K hold on K feather"z2!UbU#C K feather"z1!UgU#C K feather"z1!UFU#C K ylabel"U)maginaryU#C K +label"U9ealU#C

rficos de datos )omplejos -%olar.


%a instrucciones o"pass#$% y o"pass#x&y% permiten graficar datos complejos de manera polar .otar 'ue z sigue siendo un m(mero complejo en formato rectangular
K z3/1<1iC K compass"z3# K hold on K compass"8!01# %os ngulos se representan en grados

rficos de ; variables independientes


,rear la malla de puntos en el plano \] 9 , = -#*)+#*#( . = ,( 9 ":,;% = mes!gri (,,.)( Evaluar la funcin sobre \! ] 9 z = : +* ;( 9epresentar z respecto a \ e ] 9 surf(,,.,z)

Opciones grficas 0#
Malla transparente 9 mes!(,,.,z), !i en off Huperficie color degradado sin malla 9 surf(,,.,z), s!a ing interp Mapa fsico 9 pcolor(,,.,z), !ol 9 contour(,,.,z,'5')
77 help graph1d

on < 5 es negro

Opciones grficas 0#
E.g.- se trata de visualizar la funcin-

Z = 10e(0.4a) sin (2 ft)


para f / 2 y a y t a / 6.3 a E ! mientras t / 6.3 to 2
77 @t!aA / meshgrid"6.3-.63-2! 6.3-6.2-E#C 77 f/2C 77 [ / 36.5e+p"0a.56.8#.5sin"25pi.5t.5f#C 77 surf"[#C 77 figure"2#C 77 mesh"[#C

Opciones grficas 0#
E.g.Para la malla x&y x / 01 a 1 y paso de 6.3 mientras tambi;n se define y / 01 a 1 y paso de 6.3
77 @+!yA / meshgrid"01-.3-1!01-.3-1#C 77 z / 15"30+#.^2.5e+p"0"+.^2# 0 "y<3#.^2# ... 0 365"+=2 0 +.^1 0 y.^2#.5e+p"0+.^20y.^2# ... 0 3=15e+p"0"+<3#.^2 0 y.^2#C 777 surf"z#C

Otras opciones grficas 0#


,urvas en 1J 9 t = )*pi36))*4*pi( 9 , = sin(t)( . = cos(t)( z = t( 9 plot3(,,.,z) < =>lice Huperficies de revolucin 9 c.lin er(,)( Esfera 9 sp!ere

rficas m&ltiples en una figura


%a instruccin subplot#"&n&p% permite la conjuncin de varios grficos en una sola figura de " x n recuadros! donde p es el n(mero de recuadro.
E.g.t / 6:piN86:;EpiG DP1Q1RF / cylinder-2Ecos-t..G subplot-;1;18.G mes3-P. subplot-;1;1;.G mes3-Q. subplot-;1;10.G mes3-R. subplot-;1;12.G mes3-P1Q1R.

)ontrolando Ejes y 'iguras


M $% & permite el ajuste de los lmites de los ejes y la resolucin de la trama del cuadriculado mediante la instruccin- axis#'x"in x"ax y"in y"ax(% de igual manera permite hacer visibles los ejes conaxis on y axis off Mismo caso para la trama- grid on y grid off Para acceder a una figura especfica para ajustarla se puede usar - figure#n% donde n es el n(mero de la figura mostrado en la cabecera de la imagen Para cerrar las ventanas se usa- lose all

Operadores lgicos y )ontrol de flujo de programas

Operadores lgicos

%os operadores lgicos permiten interrogar variables o estructuras de datos con la finalidad de obtener informacin 'ue ayude a controlar el flujo de ejecucin los programas o generar nuevas estructuras de datos "logical indexing#.

_peradores lgicos relacionales Mayor 'ue- C Menor 'ue- S Mayor o igual 'ue- C/ Menor o igual 'ue- S/ )gual 'ue- // Jiferente 'ue- T/

Inde!ado lgico -*ogi al indexing.


En M $% & se puede averiguar si un particular arreglo = matriz cumple con alguna condicin lgica

CC r / results-:18. CC logUind / r C 67; CC r-logUind.


En el ejemplo! log)ind es un arreglo=matriz del mismo tamaLo 'ue r pero en lugar de valores contiene ceros -false. en a'uellas localidades 'ue no cumplen con la condicin "i.e.: r > 0.2# y unos -true. en las localidades correspondientes a donde s se cumple. esto se le conoce como vector lgico "Logical Vector#.

%a operacin r#log)ind% finalmente presenta los datos en r de las localidades correspondientes donde logRind tiene unos -true.

Inde!ado lgico -*ogi al indexing.

Operadores Xooleanos
_peradores &ooleanos .J- V _9- W ._$- T ,onecta 2 e+presiones lgicas

?,# ? 6 6 8 8 X 6 8 6 8 Besultado 6 8 8 8 ? 6 6 8 8 X 6 8 6 8

OB Besultado 6 6 6 8 ? 6 8

,OO T? 8 6

Operadores Xooleanos
EYEM%LOJ:
?/6 X / false ) / 8 #/< '/D686; 6 0 6 8F %robar: CC? V X CC? V ) CC? V # CC? W X CC? W ) CC? W # CC T? CC TX CC T) CC T' CC T?V) CC T) V ' E / true

CC? V E CC? W E CC T#

CC? V ' CC? W ' CC TE

Operadores Xooleanos
EYEM%LOJ:
?/6 X / false '/D686; 6 0 6 8F )/8 #/< E / true

CC? V X / 6 CC? V ) / 6 CC? V ' / D6 6 6 6 CC? W X / 6 6 6 6 6F CC? W # / 8 CC? W ' / D6 8 6 8 CC? V E / 6 6 8 6 8F

CC? V # / 6 CC? W ) / 8 CC? W E / 8

Operadores Xooleanos
EYEM%LOJ:
?/6 X / false '/D686; 6 0 6 8F )/8 #/< E / true

CC T? / 8 CC TX / 8 CC T) / 6 CC T# / 6 CC TE / 6 CC T' /D8 6 8 6 CC T?V) / 8 CC T) V ' / D6 6 6 6 8 6 8 6F 6 6 6 6F EE %ara comparaciones matriciales1 las operaciones booleanas se reali>an elemento4por elemento

Operadores Xooleanos
Orden de precedencia:
,uando se ejecutan m(ltiples operaciones lgicas al mismo tiempo sin estar separadas por par;ntesis! la operacin de negacin : + #,-.% se eval(a primero! seguida con la y lgica : / #0,1% y finalmente por la o lgica : 2 #-3%

?VXW) / -?VX. W ) ?WXV) / ? W -XV). ?VTXW) / -?V-TX.. W ) ?WTXV) / ? W --TX.V).

%rogramacin en Matlab
)onditional )ontrol
0 if! else! elseif 0 sBitch! case

Loop )ontrol
4 for! Bhile! continue! breaF

Error )ontrol
0 try! catch

%rogram Oermination
4 return

%as operaciones de control de flujo de programa permiten operar a M $% & mas all de una simple calculadora! convirti;ndolo en un lenguaje de alto nivel. El control de flujo se realiza mediante e+presiones condicionales y de control de ciclo

E!presiones condicionales
If1 Else1 and Elseif
` %a e+presin if condiciona la ejecucin de un grupo de instrucciones! a partir de una comparacin lgica. Jichas instrucciones slo se ejecutan en caso 'ue el resultado de la comparacin resulte positiva -true.7 %a lista de las instrucciones condicionadas alcanza su final al encontrarse la e+presin reservada end7 Para el caso 'ue el resultado de la comparacin lgica resulte negativa! todos las instrucciones condicionadas son omitidas de la ejecucin En cual'uier caso! el resto del programa continuar ejecutandose a partir de la e+presin reservada end

` ` `

if o"para i4nUlogi a instru iones end

E!presiones condicionales
?/9 X/6

if ? C 9 # / D8 ; 9F ?/?Z8 end if ? W X E / mean-X. end

E!presiones condicionales
If1 Else1 and Elseif
` %a e+presin else permite la ejecucin de un segundo grupo de instrucciones delimitadas nuevamente por la e+presin reservada end1 si y slo si el resultado de la e+presin if result negativa -false.7 Es decir 'ue slo uno de los sets de instrucciones podr ser ejecutado por cada vez 'ue se eval(e la e+presin condicional.

if o"para i4nUlogi a pri"er set de instru iones else segundo set de instru iones end

E!presiones condicionales
?/9 if ? C 9 # / D8 ; 9F ?/?Z8 else # / D 6 6 6F ?/?48 end X/6 if ? V X E / mean-X. else E/6 end

E!presiones condicionales
If1 Else1 and Elseif
` %a e+presin elseif fuerza la ejecucin del grupo de instrucciones delimitadas bajo su campo de accin si y slo si el resultado de la e+presin if result negativa -false. y si el resultado de su comparacin lgica relacionada result positiva-true.7

if o"para i4nUlogi a pri"er set de instru iones elseif o"para i4n)l4gi a)2 segundo set de instru iones elseif o"para i4n)l4gi a)3 ter er set de instru iones end

E!presiones condicionales
?/9 X/6 if ? C 0 # / D8 ; 9F ?/?Z8 elseif ? C ; #/#Z8 ?/?Z; end EE ?mbas e!presiones1 la if y la elseif son evaluadas cada ve>7

E!presiones condicionales
s+itc3
` ` %a e+presin s5it ! act(a como una serie de e+presiones if-elseif. Hlo una de las e+presiones evaluadas podr ser verdadera -true. cada vez! lo 'ue llevar a 'ue slo el conjunto de instrucciones ejecutadas se ejecute.

s+itc3 expresionUl4gi a #valor o string% case valor)1 pri"er set de instru iones case valor)2 segundo set de instru iones case valor)n n set de instru iones end

E!presiones condicionales
?/9 X/6 s+itc3 ? case 2 # / D 6 6 6F ?/?48 case = X/8 case 9 # / D8 ; 9F ?/?Z8 EE Jlo el caso 9 es evaluado end

)iclos
` %os ciclos son una parte para el control de flujo de programa permitiendo a M $% & ejecutar repetidamente una serie de instrucciones de manera especfica y controlada ` %a repeticin de dichas inctrucciones se realiza principalmente mediante dos tipos de ciclos3. ,iclos 6or 2. ,iclos 7!ile

)iclos
'OB
` %a e+presin for permite la ejecucin de una instruccin o conjunto de instrucciones un n&mero predeterminado de veces.

for 8ndi e9valor)ini ial:in re"ento:valor)final onjunto de instru iones end EE Hi [in re"ento: no est especifcado! M $% & considerar ese valor / 3

)iclos
'OB
for i 9 1 : 1 : 1;; x#i% 9 ; end

signa 6 a los primeros 366 elementos del vector x Para el caso de 'ue x no e+ista o 'ue contenga menos de 366 elementos! espacio adicional ser aLadido automticamente

)iclos
'OB
` ,omo en otros lenguajes de programacin! M $% & permite anidar varios ciclos en el cdigo. ?/DF for i 9 1:" for j 9 1:n 0#i&j% 9 i < j end end

He crea una matriz de " por n cuyos elementos contienen la suma de su position en la matriz

)iclos
*HILE
` %a e+presin 5!ile ejecuta una instruccin o conjunto de instrucciones de manera repetida mientras la e!presinUlgica de control sea verdadera.

+3ile expresi4n)l4gi a onjunto de instru iones end

)iclos
*HILE
? / 9G X / 8=G +3ile 0 = ; / > ? 1; 090<1 >9>-2 end

El ciclo 5!ile incrementar el valor de y decrementar el de & por cada ciclo hasta 'ue las 2 condiciones en la e+presin se cumplan 55 Para prevenir entrar en un ciclo infinito! se re'uiere 'ue las comparaciones lgicas 'ue eval(a el 5!ile se cumplan en alg(n momento.

)iclos
*HILE
? / 9G X / 8=G +3ile 0 = ; / > ? 1; @f 0 ? ; 090<1 elseif > = 1; >9>A2 end end

E+presiones condicionales puden ser anidadas dentro de los ciclos! permitiendo modificar de manera interna algunas variables

)iclos
*HILE
? / 9G X / 8=G +3ile 0 = ; / > ? 1; @f 0 ? ; 090<1 elseif > = 1; >9>A2 end end

E+presiones condicionales puden ser anidadas dentro de los ciclos! permitiendo modificar de manera interna algunas variables

)iclos
'inali>acin de ciclos
` %a e+presin break es una instruccin 'ue permite terminar de manera inmediata la ejecucin de los ciclos for y 5!ile ` ,uando en el cdigo se encuentra un break! M $% & terminara dicho ciclo y sigue la ejecucin con la primera instruccin 'ue encuentre fuera de ;ste.

)iclos
'inali>acin de ciclos
? / 9G X / 8=G count / 8 +3ile 0 = ; / > ? 1; 090<1 >9>A2 ount 9 ount < 1 if ount = 1;; break end end

En caso de 'ue las condicones del ciclo Bhile no terminen com el ciclo! despu;s de 366 repreticiones el breaF se ejecutar terminando con el programa

'\,)IO,EJ

'unciones
:na funcin es una rutina 'ue realiza operaciones con la variable de entrada 'ue se le pasan

El paso de variables a funciones se realiza a trav;s de incluir en la llamada a la funcin los nombres de las variables flan'uedas por par;ntesis

functionRname"input#

Es posible tambi;n pasar slo partes de vectores o matrices


77 functionRname"matri+"-! 3## or 77 functionRname"matri+"-! 2-8##

'unciones
El resultado de las funciones puede ser guardado a su vez en una variable

77 variableRsalida / functionRname"variableRentrada# e.g. 77 mresult / mean"result#

$ambi;n es posible guardar el resultado en partes de vectores o matrices

77 matriz"-!2# / functionRname"matriz"-! 3-8##

'unciones
Para obtener ayuda sobre como usar la funcin se puede usar las instrucciones !elp o lookfor

77 help functionRname e.g. 77 help mean 77 looFfor FeyBord

,on esto se desplegar la informacin de como se usa dicha funcin y 'ue es lo 'ue hace

'unciones
M $% & tiene integradas muchas funciones estadsticas lo 'ue facilita el anlisis de muchas operaciones y datos.

sum a Huma el contenido del vector=matriz enviado prod a _btiene la multiplicacin de la variable enviada mean a ,alcula el promedioe median a ,alcula la media mode a ,alcula la Moda std a ,alcula la desviacin estandar s'rt a ,alcula la raiz cuadrada ma+ a Encuentra el valor m+imo dentro de la variable min a Encuentra el mnimo size a 9egresa el tamaLo de la variable

'unciones
l pasar un vector! las funciones su"& "ean& "edian& std! etc. calcularn el resultado apartir de los datos contenidos en ;l.

77 sum"@3!2!1!8!2A# / 32 77 mean"@3!2!1!8!2A# /1

,uando se le pasan a las funciones matrices! el clculo se realiza por default sobre las columnas

'unciones
Para cambiar el sentido sobre el 'ue se hacen las operaciones se le debe indicar a M $% & de la siguiente manera

77 functionR.ame"input! 2#

,uando se usen std1 ma! y min se necesita escribir77 functionR.ame"input! @ A! 2#

'unciones

Je esta manera se puede incluso aLadir los resultados a la propia matriz. E.g.- el promedio y la desviacin estndar

'unciones especiales
pi i or j Inf NaN / 1.383242>2S. / raiz cuadrada de 03 "imaginarios# / infinito / not a number

Introduccin de cadenas largas


Hi una serie o cadena no cabe en una lnea se puede usar tres puntos ! S ! seguidos por un carcter de Betorno o Enter para indicar 'ue la cadena contin(a en la siguiente lnea. E.g.- s / 3 03=2 < 3=1 03=8 < 3=2 0 3=> < 3=E ... 0 3=? < 3=4 0 3=36 < 3=33 0 3=32C

"ariables globales
Hi se re'uiere compartir el valor de una o ms variables entre distintas funciones de un programa! la variable deber declararse como variable global en todas las funciones

%a declaracin deber ocurrir antes de 'ue la variable sea utilizada en cada funcin.

E.g.-

function h / falling"t# global W9 I)$] h / 3=25W9 I)$]5t.^2C

Jcripts y 'unciones
E+isten dos tipos de archivos0M0 Jcripts! los cuales no aceptan argumentos de entrada ni regresan resultados. Ellos operan con datos en el espacio de trabajo. ,ual'uier variable 'ue ellos creen 'uedar respaldada en el espacio de trabajo y podr ser empleada en subsecuentes operaciones. 0 'unciones! son las rutinas 'ue aceptan argumentos y regresan resultados. En estos casos las variables internas son locales a la funcin. Para el caso de 'uerer compartir ms resultados se usan las variables globales.

\so de arc3ivos 7m
Presione para crear un nuevo archivo .m

` Hu e+tensin debe ser O.mP para ser reconocido por M $% & como tal

\so de arc3ivos 7m

Denem430.m

Hi se incluye el OCP al final de cada lnea o instruccin su resultado no ser mostrado inmediatamente

'unciones propietarias
%as funciones son en realidad archivos .m los cuales pueden ser ejecutados especificando ciertas entradas y salidas deseadas. %a instruccin para decirle a M $% & 'ue un archivo es en realidad una funcin es fun tion out3/nombreRfuncin"in3# fun tion out3/nombreRfuncin"in3!in2!in1# fun tion @out3!out2A/nombreRfuncin"in3!in2# .ota- He debe escribir dicho comando al inico del archivo .m y se debe salvar dicho archivo con el mismo nombre con el 'ue la funcin fue definida

'unciones propietarias
Para la funcin- out/s'uarer " ! ind#

!ismo nomb"e

)omentarios
He utiliza el smbolo B para 'ue el int;rprete de M $% & omita cual'uier te+to despu;s de dicho caracter dentro de esa lnea "e'uaivalente al uso de // en lenguaje ,#. En algunos casos es necesario disminuir la velocidad de ejecucin de algunas instrucciones! para lo anterior se puede usar la instruccin pause.
77 pause Z espera hasta 'ue se presione una tecla 77 pause"1# Z espera 1 segundos

Simulink
Used to model, analyze and simulate dynamic systems using block diagrams. Provides a graphical user interface for constructing block diagram of a system therefore is easy to use. However modeling a system is not necessarily easy !

JimulinA

Model simplified representation of a system e.g. using mathematical e uation !e simulate a model to study the behavior of a system need to verify that our model is correct e"pect results Knowing how to use Simulink or M !" # does not mean that $ou know how to model a s$stem

JimulinA

Problem# !e need to simulate the resonant circuit and display the current waveform as we change the fre uency dynamically.
i $aries from % to &%%% rad's Z v"t# / 2 sin t ] (bserve the current. %hat do we e&'e(t ) 6.63 N 36 366 u*

!he am'litude of the (urrent wa*eform will +e(ome ma&imum at resonant fre,uen($- i.e. at = 1000 rad.s

JimulinA

How to model our resonant circuit )


i Z v"t# / 2 sin t ] 6.63 N 36 366 u*

!riting .$, around the loop,

di + v = i- + , + idt dt *

JimulinA

/ifferentiate wrt time and re0arrange#

+ dv di - d i i = + &+ , dt dt , dt ,*
1aking ,aplace transform#

&

s$ 2 & = s2 + s 2 + , , ,*

s$ + & = 2 s + s + , , ,*

JimulinA

1hus the current can be obtained from the voltage#

s4+' , 3 2 = $ + & s + s + , ,* s4+' ,3 + & s + s+ , ,*

JimulinA

5tart 5imulink by typing simulink at 6atlab prompt 5imulink library and untitled windows appear

)t is Bhere Be obtain the blocFs to construct our model

)t is here Bhere Be construct our model.

JimulinA

*onstructing the model using 5imulink#


7/rag and drop8 block from the Simulink library window to the untitled window
1 s+1 Sine Wave Transfer Fcn To Workspace

simout

JimulinA

*onstructing the model using 5imulink#

s4+' ,3 + & s + s+ , ,*
100s

s4+%%3 & 9 s + +%%%s + ++%


s2+1000s+1e6 i To Workspace

Sine Wave v To Workspace1

Transfer Fcn

JimulinA

eg<Usim7mdl

!e need to vary the fre uency and observe the current


5 Ramp w To Workspace2 1 1000 Constant s Integrator Dot Product3 sin Elementary Math Dot Product2 Amplitude v To Workspace3 100s s2+1000s+1e6 Transfer Fcn1

i To Workspace

S*rom initial problem definition! the input is 2sin"bt#. ]ou should be able to decipher Bhy the input BorFs! but you do not need to create your oBn input subsystems of this form.

JimulinA

1 0.5 0 -0.5 -1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

-5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

JimulinA

eg5Usim7mdl

1he waveform can be displayed using scope similar to the scope in the lab

5 Constant1 100s 2000 Constant 0.802 Slider Gain 1 sin s2+1000s+1e6 Scope T ransfer Fcn s Dot Product2 Integrator Elementary M ath

rap3ical \ser Interfaces


\I#E! the M $% & raphical \ser Interface #evelopment Environment! provides a set of tools for creating graphical user interfaces "W:)s#. $hese tools greatly simplify the process of designing and building W:)s. ]ou can use the W:)JE tools to perform the folloBing tasFs0 %aying out the W:).

0 Programming the W:). E+ample template for a push button

MATLAB MATLAB Demos Demos


#emonstrations #emonstrations are are invaluable invaluable since since t3ey t3ey give give an an indication indication of of t3e t3e M?OL?X M?OL?X capabilities7 capabilities7 ? ? compre3ensive compre3ensive set set are are available available by by typing typing t3e t3e command command CCdemo CCdemo in in M?OL?X M?OL?X prompt7 prompt7

MATLAB MATLAB Demos Demos


M?OL?X M?OL?X +orAs +orAs +it3 +it3 scalars1 scalars1 vectors vectors and and matrices: matrices:
`` `` `` `` `` Xasic Xasic matri! matri! operations1 operations1 Inverses Inverses of of matrices1 matrices1 rap3s rap3s of of matrices1 matrices1 Matri! Matri! manipulation1 manipulation1 %rogramming1 %rogramming1 application application development1 development1 and and \I \I design design

MATLAB MATLAB Demos Demos M?OL?X M?OL?X 3as 3as remarAable remarAable grap3ics grap3ics capacities: capacities:
`` `` `` `` `` ;4# ;4# and and 04# 04# plots1 plots1 Line Line plotting1 plotting1 04# 04# surface surface plot1 plot1 Jplas3 Jplas3 screen screen plot1 plot1 %lot %lot of of comple! comple! functions functions and and 777 777

MATLAB MATLAB Demos Demos


M?OL?X M?OL?X 3as 3as remarAable remarAable grap3ics grap3ics capacities1 capacities1 0U# 0U# plots plots are are some some of of t3em: t3em:
04# 04# plots plots in in Handel Handel rap3ics rap3ics %lot %lot Oype1 Oype1 J3ading1 J3ading1 )olomap1 )olomap1 ?!is ?!is and and 777 777

MATLAB MATLAB Demos Demos


M?OL?X M?OL?X 3as 3as remarAable remarAable grap3ics grap3ics capacities1 capacities1 gallery gallery is is one one of of t3em: t3em:
`` O3e O3e allery allery is is a a place place to to 3ang 3ang particularly particularly elegant elegant e!amples e!amples of of grap3ics grap3ics visuali>ation visuali>ation in in M?OL?X7 M?OL?X7 `` ^not1 ^not1 `` _uiver1 _uiver1 `` ^lein ^lein II1 II1 `` )ruller )ruller and and 777 777

MATLAB MATLAB Demos Demos M?OL?X M?OL?X 3as 3as many many toolbo!es: toolbo!es:
`` )ontrol )ontrol toolbo! toolbo! is is one one of of t3e t3e important important toolbo! toolbo! in in M?OL?X7 M?OL?X7 `` BL) BL) )ircuit )ircuit Besponse1 Besponse1 `` ain ain and and %3ase %3ase Margins1 Margins1 `` ,otc3 ,otc3 'ilter 'ilter #iscrete1 #iscrete1 `` %I# %I# and and 777 777

MATLAB MATLAB Demos Demos


`` Jignal Jignal %rocessing %rocessing toolbo! toolbo! is is one one of of t3e t3e important important toolob! toolob! in in M?OL?X7 M?OL?X7 `` #esigning #esigning 'ilter1 'ilter1 `` 'iltering 'iltering a a Jignal1 Jignal1 `` #iscrete #iscrete and and )ontinuous )ontinuous 'ourier 'ourier Oransform1 Oransform1 `` Jpectral Jpectral ?nalysis ?nalysis and and 777 777

M?OL?X M?OL?X 3as 3as many many toolbo!es: toolbo!es:

MATLAB MATLAB Demos Demos JimulinA JimulinA 3as 3as t3e t3e ability ability to to simulate simulate a a large large range range of of systems1 systems1 from from very very simple simple to to e!traordinarily e!traordinarily comple!7 comple!7 O3e O3e Model Model and and demonstrations demonstrations t3at t3at you you +ill +ill see see in in t3is t3is section section include include bot3 bot3 simple simple and and comple! comple! systems7 systems7

MATLAB MATLAB Demos Demos


JimulinA JimulinA 3as 3as t3e t3e ability ability to to simulate simulate a a large large range range of of systems1 systems1 in in t3e t3e menu menu of of Jimulation Jimulation +e +e 3ave: 3ave: %ause7 %ause7 Jtop1 Jtop1 Jimulation Jimulation %arameters1 %arameters1 Jtart1 Jtart1

You might also like