Está en la página 1de 24

Facultad de Ingeniera Elctrica

Laboratorio#1 - Introduccin a MATLAB.


OBJETIVOS: Iniciacin en la utilizacin de la herramienta Matlab. RESUMEN: En esta prctica se introducir al alumno en la herramienta Matlab utilizndolo como programa de clculo y visualizando los resultados obtenidos. Al final de la prctica, el alumno deber demostrar al profesor los Ejercicios propuestos resueltos y, si procede, comentar los resultados obtenidos.

1. INTRODUCCIN: MATLAB es un lenguaje de muy alto nivel para cmputo tcnico. El cual
integra en un mismo ambiente muy fcil de usar clculos, visualizacin y programacin.

Algunos de los usos ms comunes de MATLAB son:

Clculos matemticos, Desarrollo de algoritmos, Modelado y Simulacin, Anlisis y Graficacin de datos, Desarrollo de interfaces grficas, etc. MATLAB proviene del acrnimo MATrix LABoratory (Laboratorio de Matrices) y que originalmente fue diseado para realizar operaciones con matrices. Actualmente es un poderoso sistema de clculo matemtico y programacin
que integra un sistema de graficacin. Se puede decir que el lenguaje de

programacin de MATLAB es ms poderoso que FORTRAN, C, VisualBasic, etc. La fama que MATLAB ha obtenido, es porque paralelamente a su desarrollo
tambin se han programado en su lenguaje colecciones de herramientas para
realizar actividades dentro de los campos de la ingeniera, las ciencias, las

finanzas y la economa, solo por mencionar algunas.

Laboratorio de Control

Figura 1.1 Entorno grfico de MATLAB.

Facultad de Ingeniera Elctrica

1.1 MATLAB.
A MATLAB lo podemos utilizar como si fuese una calculadora para hacer clculos simples como: suma, resta, multiplicacin, divisin, potenciacin, etc.
>>3+7 ans= 10 >>8-2 ans= 6 >>10*2 ans= 20 >>144/12 ans= 12 >>4^2 ans= 16

Figura 1.2 Operaciones bsicas en MATLAB. En la Tabla 1.1 se muestra los operadores bsicos y su prioridad. Hay que

recordar que como todo lenguaje de programacin los operadores bsicos tiene
un nivel de prioridad. as sucesivamente. Esto es que operacin se realiza primero y

Tabla 1.1 Operadores Bsicos y su Prioridad.

Operacin Suma Resta


Multiplicacin

Smbolo + * / ^ MATLAB se puede

Prioridad 3 3 2 2 1 utilizar como una

Divisin Potencia Como ya se mencion

calculadora y sabemos que una calculadora tambin nos permite obtener funciones evaluadas como
En la Tabla 1.2

seno,

coseno, un

tangente,

etc. de algunas las funciones

obtenemos

pequeo listado de todas

de estas funciones. Para obtener un listado

elementales que contiene MATLAB solo debemos escribir el comando elfun.

Laboratorio de Control

Facultad de Ingeniera Elctrica Tabla 1.2 Algunas Funciones en MATLAB.


* su argumento es en radianes

Funcin seno(x)* coseno(x)* tangente(x)*


logaritmo natural
logaritmo base 10

Notacin en MATLAB sin(x) cos(x) tan(x) log(x) log10(x) exp(x) sqrt(x) abs(x)

ex

MATLAB contiene algunas variables ya definidas y algunas se listan en la Tabla 1.3.


Tabla 1.3 Algunas Variables Definidas en MATLAB.

Variable pi i j eps Inf NaN


3.14159265... unidad imaginaria = igual que i

Descripcin

precisin de las operaciones de punto flotante ( infinito Not a Number (no un numero)

2 - 52

En particular eps se utiliza por lo general para evitar la divisin por cero (0) y NaN es un resultado que MATLAB regresa cuando el resultado de la operacin indicada no es numrico. Ya que acabamos de mencionar que existen variables definidas en MATLAB, nosotros tambin podemos crear nuestras variables y otorgarles un valor; como todo lenguaje de programacin existe una forma de definir las variables, lo novedoso que tiene MATLAB en esto del manejo de variables es que no se necesita definir el tipo de valor que es, con MATLAB nos olvidamos de los tipos de variables como integer, float, long, double, etc. Solamente lo que necesita MATLAB es el valor de la variable y listo. Se nos permite en MATLAB otorgarle 63 caracteres de tamao al nombre de las variables, si el nombre de la variable excede los 63 caracteres slo se conservaran los primeros 63.

Laboratorio de Control

Facultad de Ingeniera Elctrica


Como podemos observar en la Figura 1.3, siempre que se ejecuta alguna accin,

el

resultado es mostrado en la pantalla. Lo cual no es el caso al momento de escribir la variable y con el valor de 5, y esto es porque al finalizar la sentencia agregamos el punto y coma ( ;). No crea que se pierde el valor por que no lo escribe en la pantalla, lo que hace es guardarlo para despus usarlo. Ahora si usted escribe solo y aparecer el valor asignado a la variable.
>>x = 3 x= 3 >>y = 5; >>z = 3+2*i z= 3+2i >>a = 'Panama' a= Panama

Figura 1.3 Variables en MATLAB.

Los con

nombres

de

las

variables

no

son

iguales

si

se

escriben

letras maysculas o minsculas. Esto es que si declaramos la variable a es

distinta a la variable A. Para ver que variables que hemos definido solo basta con escribir el comando who.
>>who; axyz >>

Figura 1.4 Comando who.

Para borrar variables se utiliza el comando borra todas la variable, pero si va

clear, el cual si se escribe solo


acompaado por el nombre de alguna

variable, solo esta es borrada.


>>clear a >>who xyz >>clear >>who >>

Figura 1.5 Comando clear.

En MATLAB tambin podemos variar el nmero de dgitos con los que se escribe una cantidad numrica. Esto se puede hacer utilizando alguno de los formatos que se describen en la Tabla 1.4 en donde se utiliza pi () como ejemplo.
Laboratorio de Control 4

Facultad de Ingeniera Elctrica

Tabla 1.4 Formatos para escribir valores numricos.

Formato de MATLAB format format short format short e format long format long e format + format hex format bank format rat

Valor desplegado 3.1416 3.1416 3.1416e+000 3.14159265358979

Descripcin
igual que format short 5 dgitos 5 dgitos ms exponente 16 dgitos

3.14159265358979e+00 16 dgitos ms exponente 0 + 400921fb54442d18 3.14 355/113


positivo o negativo hexadecimal 2 decimales (monetario) racional aproximado

1.1.1 Guardado de una sesin y sus variables. Hasta este momento slo se ha mencionado que una variable se define
cuando se es usada por primera vez. Estas variables solo estn disponibles mientras no se cierre MATLAB o por el contrario que sean borradas. En ocasiones deseamos seguir utilizando las variables ya definidas en otra sesin

que tengamos con MATLAB y por lo tanto es conveniente de tener donde guardarlas. Con la instruccin diary es posible esto, ya que graba una copia de la sesin de MATLAB en un archivo de texto. En este archivo de texto se
guarda el historial, o sea todo lo que hemos escrito en el rea de trabajo de

MATLAB y los resultados obtenidos. La sintaxis para usarlo es diary('nombre_del_archivo.txt') y se cierra con diary('off'). Todo lo contenido dentro de estas 2 instrucciones se grabara en el archivo de texto.
Tambin podemos utilizar los comandos save y load, para guardar y cargas

respectivamente nuestra sesin. Al ejecutar la instruccin save se ejecutar la accin equivalente a la del men File>>Save Workspace As... 1.1.2 Instrucciones de entrada y salida. Como ya vimos con los ejemplos anteriores la salida o resultado que se obtiene en el espacio de trabajo lo podemos seguir utilizando y tambin se le puede acompaar de algun texto en ocasiones solo escribir un texto. Para esto utilizamos el comando fprintf, su sintaxis es: fprintf('El texto k se desee.').
Para escribir un texto con una variable, es necesario dar el formato de la variable con el cual queremos que sea escrito el valor de la variable.Los formatos son:

Laboratorio de Control

Facultad de Ingeniera Elctrica


" " " " " " "

f punto flotante. g punto fijo o punto flotante. i entero. c carcter. s cadena. e notacin exponencial. d doble precisin.

La forma ms sencilla de darle datos a MATLAB es con el comando input. Su


sintaxis es la siguiente: x= input('Dame el valor: '). Este tipo de entrada

de datos no genera al final un salto de lnea, este solo se genera con \n.

1.2 Funciones y Variables.


Como ya se mencion uno de los atributos ms poderosos de MATLAB es la facilidad del manejo de variables y funciones. Ya que en otros lenguajes las variables a usarse se deben de definir desde un principio, y en MATLAB se definen conforme se requieran por primera vez, no importando si estas son

unidimensionales o multidimensionales, simblicas o numricas. 1.2.1 Variables.


Regularmente las variables contiene valores que se conocen como reales, tambin estas pueden contener nmeros imaginarios ( x+yi) como se puede ver en la Figura 1.3 en la variable z, como ya sabemos este tipo de nmeros contiene lo que se denomina parte real y parte imaginaria, las cuales se pueden obtener con real(z)para la parte real, e imag(z) para la parte
pero

imaginaria.
>>real(z) ans= 3 >>imag(z) ans= 2

Figura 1.6 Comandos real(z)e imag(z).

1.2.2 Funciones.
En MATLAB existen 2 tipos de funciones, unas son las predefinidas por y reciben el nombre de funciones elementales de las cuales se muestran algunas en la Tabla1.2 y las otras son las que el usuario define. Es posible definir expresiones dentro de MATLAB, como la ecuacin para calcular el
MATLAB

rea (A) de un crculo. A=r2 S le otorgamos el valor de 4 a el radio (r), obtenemos:

Laboratorio de Control

Facultad de Ingeniera Elctrica

>>A=pi*4^2 A= 50.2655 >>radio = 4; >>area = pi*radio^2 area= 50.2655

Figura 1.7 Calculo del rea de un crculo. Tambin y para no dejar pasar por alto MATLAB nos permite trabajar con

variables simblicas, las cuales son aquellas variables a las que no se les ha asignado un valor numrico. Y para esto MATLAB hace uso de su bloque de matemticas simblicas (Symbolic Math Toolbox). Una variable simblica se define con el comando sym('nombre_de_la_variable').
>>a=sym('a'); >>x=sym('x');

Figura 1.8 Comando sym('x').

Si requerimos de trabajar con funciones como por ejemplo f= 3x3+ax+b , esta se puede crear definiendo primero las variables a, b y x como simblicas para poder definir luego la funcin f.
>>a=sym('a'); >>b=sym('b'); >>x=sym('x'); >>f=sym('3*x^3+a*x+b') f= 3*x^3+a*x+b

Figura 1.9 Definiendo funciones con variables simblicas. De que nos serviran las funciones, si solo pudiramos utilizarlas de forma simblica.

integrar y derivar las funciones y esto se hace con los comandos diff(x) para derivar e int(x) para integrar. Con el comado pretty(x) hacemos que se escriba la ecuacin como si fuera escrita por un editor de ecuaciones.
Bueno pues tambin MATLAB nos permite

Otro ejemplo sera con la forma compleja z=x+i*y , donde x, y son variables reales, entonces primero declaramos x, y como variables simblicas y luego definimos el numero complejo z=x+i*y .Ya con x, y, z definidas podemos
realizar funciones con nmeros complejos, como por ejemplo obtener su

conjugado y multiplicarlo por si mismo y desarrollar el producto indicado, todo esto lo observamos en la Figura 1.10.

Laboratorio de Control

Facultad de Ingeniera Elctrica


>>x=sym('x', 'real'); >>y=sym('y', 'real'); >>z=x+i*y z= x+i*y >>conj(z) ans= x-i*y >>conj(x) ans= x >>z*conj(z) ans= (x+i*y)(x-i*y) >>expand(ans) ans= x^2+y^2

Figura 1.10 Nmeros Complejos.

Otras funciones simples y de gran importancia al elaborar algn proyecto, son las funciones para el redondeo. El comando round redondea al entero ms cercano, ceil redondea al prximo entero mayor y floor redondea hacia el prximo entero menor.

1.3 Matrices y Vectores.


Originalmente MATLAB fue diseado para realizar operaciones con matrices, as que hay que comprender la forma en que MATLAB trabaja con ellas. 1.3.1 Matrices. Una matriz en realidad es un arreglo de nmeros u objetos, las cuales tambin encuentran uso en una infinidad de situaciones.

De la matriz A se dice que tiene n renglones o filas y m columnas, as que entonces es una matriz n )m . A n )m se le llama dimensin de la matriz.

Para definir en MATLAB una matriz tomaremos la matriz M como ejemplo.

Laboratorio de Control

Facultad de Ingeniera Elctrica

>>M=[1 2 3 4 5;5 8 65 2 0;6 7 8 9 10] M= 1 2 3 4 5 5 8 65 2 0 6 7 8 9 10

Figura 1.11 Definir una matriz en MATLAB.

Como se puede ver en la Figura 1.11, los elementos de un mismo rengln son
separados por un espacio, aunque tambin estos pueden ir separados por una coma (,) y los renglones se separan con un punto y coma (;). Se dice tambin que cada elemento de la matriz tiene una posicin ij, que corresponde a su posicin
en tiene la i-sima fila y en al j-sima columna. Ejemplificando esto, el

elemento

la posicin (2,3), mientras que el elemento 10 la posicin (3,5). El comando para proporcionar el elemento del rengln o fila i y

65 tiene

la columna j es en este caso M(i,j) (M porque es el nombre de nuestra matriz). Otros comando muy tiles para el manejo de matrices se exponen en la Tabla 1.5.
Tabla 1.5 Comandos de matrices.

Comando A(a:b,c:d)
A(a:p:b,c:q:d)
hasta la d.

Descripcin
Submatriz formada por las filas de la a hasta b y por las columnas de la c Submatriz formada por las filas de la a hasta b de p en p filas y por las

columnas de la c hasta la d de q en q columnas.

A(i,:)
A(:,j)

Vector formado por los elementos de la i-sima fila Vector formado por los elementos de la j-sima columna

1.3.2 Operaciones bsicas con matrices. Recordemos que las operaciones bsicas con matrices son la suma, resta, multiplicacin y divisin. Consideremos las siguientes matrices:

Para

realizar la suma o resta

de 2 matrices hay que recordar

que

slo se

pueden sumar o restar

si son de la misma dimensin. Como solo A y B son de las mismas dimensiones solo

se pueden restar y sumar.

Laboratorio de Control

Facultad de Ingeniera Elctrica


>>A+B ans= 7 -3 7 0 -8 2 >>A-B ans= 1 -7 -7 8 8 0

Figura 1.12 Suma y Resta de Matrices.

La multiplicacin de 2 matrices slo se puede realizar si el nmero de columnas


de la primera matriz es igual el nmero de renglones de la segunda matriz. con nuestras matrices solo se pueden efectuar los productos de A y C, C y A, y as

como los de B y C, C y B.
>>A*C ans= 48 17 -14 32 36 -24 -20 33 -18 >>C*A ans= -16 22 -68 82 >>B*C ans = -10 -39 46 -13 -12 5 >>C*B ans = -51 36 -99 26

24 4 -2

Figura 1.11 Definir una matriz en MATLAB.

Como vemos MATLAB respeta las propiedades de las operaciones con matrices. En la Tabla 1.6 se describen algunas otras operaciones que se pueden realizar con matrices.

Laboratorio de Control

10

Facultad de Ingeniera Elctrica Tabla 1.6 Operaciones con matrices.

Comando diag(A) inv(A) A' transpose(A) det(A) rank(A) trace(A) norm(A) A^c A.^c A/B A\B A*c A.*c [L,U]=lu(A) eig(A) [V,E]=eig(A)
De la segunda forma de

Descripcin
Vector formado por los elementos de la diagonal de la A.

Inversa de A.
Transpuesta de Transpuesta de Determinante de

A. A. A.

Rango de A.
Suma de los elementos de la diagonal de A.

Norma de A. Matriz A a la c potencia.


Cada elemento de la matriz A se eleva a la c potencia.

Matriz A entre B. Es lo mismo que B/A. Matriz A por el escalar c.


Cada elemento de la matriz A se multiplica por el escalar c.

Factorizacin LU a una matriz cuadrada no singular A


Vectores propios o eigenvectores. Son los vectores que obedecena la

operacin:

Ax = Ix
obtener los vectores propios, se obtiene 2

matrices la matriz

V en donde sus columnas son los vectores propios y los elementos de la diagonal de E son los valores propios.

jorda(A)

Se

utiliza

la

forma

de

Jordan

para

diagonalizar

una

matriz.

Con

esta

instruccin nos es devuelta la forma cannica de Jordan, que obedece a:

A=M!-1 JM
donde la matriz J es una matriz diagonal con los valores propios y M es
una matriz formada por los vectores propios.

1.3.3 Vectores. Un vector es una matriz de un solo rengln o de una sola columna, y
cada uno recibe su nombre como vector rengln (x) o vector columna (y). Los

vectores siguen las reglas de las matrices.

Laboratorio de Control

11

Facultad de Ingeniera Elctrica

En MATLAB definimos los vectores como se muestra en la Figura 1.12 y en la


Tabla 1.7 algunas de las operaciones que se pueden realizar con estos. Si

requerimos de solo presentar algunos elementos o algn elemento del o los vectores podemos hacerlo mediante el uso de los comandos que se utilizan

para presentar los elementos de una matriz.


>>x=[1 2 3 4] x= 1 2 3 4 5 >>y=[1;2;3;4] y= 1 2 3 4

Figura 1.11 Definir una matriz en MATLAB.

Tabla 1.7 Operaciones con vectores

(a y b son vectores de dimensin n y c es un escalar).

Operacin a+c a*c a+b a.*b a./b a.\b a.^c c.^a

Resultado

[a1+c a2+c [a1c a2c

an+c ] anc]

[a1+b1 a2+b2 an+bn] [a1b1 a2b2 anbn] [a1 /b1 a2/b2 an/bn] [b1/a1 b2/a2 bn /an] [a1
C

Los productos cruz y punto de dos vectores estn definidos por un escalar y un vector. MATLAB los calcula con los comandos dot(a,b) y cross(a,b) respectivamente. 1.3.4 Funciones y Sistemas de ecuaciones simultneas.
Es posible calcular funciones de matrices y vectores. Las funciones definidas en MATLAB y aquellas que define el usuario se pueden

usar tanto con matrices como con vectores. Si A fuese una matriz y v un vector nos da:

Laboratorio de Control

12

Facultad de Ingeniera Elctrica

Un tipo especial de vector es el que formamos con el comando x=linspace(a,b,n)


para evaluar una funcin en un intervalo dado. Este comando genera n valores

igualmente espaciados entre a y b. Otra forma de generar un vector similar es por medio de la siguiente instruccin: x= a : incremento : b donde a es el valor inicial y los siguientes valores son a+incremento, a+2*incremento, ... hasta llegar a b que es el valor final. Para generar un espaciamiento en logartmico usamos x=logspace(a,b,n). Las ecuaciones simultaneas se pueden resolver con:
>>[x,y]=solve('a*x+b*y=c','d*x+e*y=f','x,y') x= -(-e*c+f*b)/(a*e-b*d) y= (a*f-c*d)/(a*e-b*d) >>syms a b c d e f x y; >>A=[a b;d e]; >>v=[c;f]; >>x=linsolve(A,v) x= [-(-e*c+f*b)/(a*e-b*d)] [(a*f-c*d)/(a*e-b*d)]

Figura 1.12 Solucin de ecuaciones simultneas.

Los coeficientes de un sistema de ecuaciones simultaneas se expresan en forma

matricial y por lo tanto son susceptibles de ser manejados por MATLAB. 2a-2b =5 -2a+6b-2c =0 -2b+6c-2d=0 -2c+8d=0 Se escribe en la forma matricial Ax=b, donde para resolver este sistema obtenemos primero la inversa de A y la multiplicamos por b.

Laboratorio de Control

13

Facultad de Ingeniera Elctrica

Se utiliza para resolver este sistema utilizamos la instruccin tambin podemos utilizar la instruccin x=A\b.

x=inv(A)*b, o

1.4 Grficas.
Las caractersticas y opciones para graficado con MATLAB son muy

variadas y van desde obtener grficas en 2 o 3 dimensiones hasta la posibilidad de cambiar las propiedades de ellas. 1.4.1 Grficas en 2 dimensiones (2D). El comando bsico para graficar es plot(x,y), en donde x es un vector de puntos y y es un vector de datos de la misma dimensin que x. Existen varias opciones para dar ms informacin de una grfica, algunas de estas se muestran en la Tabla 1.8 y la Tabla 1.9.

Laboratorio de Control

14

Facultad de Ingeniera Elctrica Tabla 1.8 Opciones de grficas.

Comando
xlabel('x');
ylabel('y');
Nombre del eje x. Nombre del eje y. Titulo de la grfica.
Leyenda de informacin.

Resultado

title('titulo') legend('sen(x)', ...); semilogx(x,y) grid on/off text(x,y,'texto') axis([xi xf yi yf]) hold on/off polar(,r) bar(x,y)
stairs(x,y)

Grfica semilogaritmica. Utiliza el comando Aade/Quita rejilla de referencia.

logspace(x1,x2,n).

Coloca texto a una grfica. Donde x, y son las coordenadas donde empieza a escribirse el texto Asigna los valores mximos y mnimos de las coordenadas x,y de la grfica Si se desea obtener bajo una misma grfica. Grfica polar. Donde

y r son las coordenadas polares. y es un vector de valores en las coordenadas x. y es un vector de valores en las coordenadas
a la de barra, pero solo proporciona 10

Grfica de barras. Donde Grfica de escalera. Donde


Grfica de histograma.

x.

hist(x,y) stem(x,y) compass(z) pie(A)

Similar

barras entre el mximo y mnimo del vector y.

Grfica de puntos.
Grfica de brjula. Muestra la magnitud y el ngulo de nms. complejos

Grfica de pie. Despliega el % que cada elemento de un vector o matriz


contribuye a la suma de todos los elementos.

Laboratorio de Control

15

Facultad de Ingeniera Elctrica

Tabla 1.9 Cdigos de color, estilo de linea y marcador.

Cdigo
y m c r g b w k

Color
amarillo magenta azul obscuro rojo verde azul claro blanco negro

Marcador
. o x + * s d v

Descripcin
punto circulo X ms asterisco cuadro diamante Triangulo (hacia abajo)

Laboratorio de Control

16

Facultad de Ingeniera Elctrica

Cdigo
: -. --

Estilo de lnea
Lnea slida Puntos Lnea y punto Lnea discontinua

^ > < p h

Triangulo (hacia arriba) Triangulo (derecha) Triangulo (izquierda) Pentagrama Hexagrama

1.4.2 Grficas en 3 dimensiones (3D). Las grficas en 3D aparte de ser ms vistosas en algunos casos otorgan
ms informacin al usuario y MATLAB cuenta con varios comandos para graficar

funciones del tipo z =f ( x , y) coordenadas x, y y z.

El

comando

plot3(x,y,z),

utiliza

las

Laboratorio de Control

17

Facultad de Ingeniera Elctrica Tabla 1.10 Opciones y caractersticas de grficas 3D.

Comando
[X,Y]=meshgrid(xi,yi:inc:xf,yf) mesh(x,y,z) hidden off
surf(x,y,z)

Resultado
Define una rejilla que genera las matrices X,Y. Grfica de malla. Se necesita primero declarar un meshgrid. Hace transparente a la grfica de tipo mesh.
Grfica de superficie. Similar a la de malla, solo que la

superficie esta coloreada y depende los colores de los valores

de z.

shading flat shading interp surfl(x,y,z) contour3(x,y,z) pcolor(x,y) waterfall(x,y,z) quiver(x,y,dx,dy) clabel(cs)

Quita las lneas negras de la grfica. Suaviza los colores.

Grfica surf pero con una iluminacin aplicada.


Grfica de contorno. si solo se escribe contour no entrega una

grfica en 2D.
Grfica similar a la contorno pero en pseudocolor.

Grfica de marea.
Otorga lineas direccionales a la grfica de contorno. aade valores a la altura de una grfica de contorno.

1.4.3 Subgrficas. Las subgrficas (subplots), son aquellas figuras divididas varias gaficas ms pequeas, generadas independientemente una de otra. El comando de MATLAB para realizar subgrficas es subplot(m,n,p).

en
la

Laboratorio de Control

18

Facultad de Ingeniera Elctrica

Lo que realmente hace este comando es dividir la figura en m) n subgrficas arregladas en forma de matriz de m renglones y n columnas; La variable p
hace que se active cada subgrfica. Entonces si tenemos 4 subgrficas en un arreglo 2x2 p obtendr los valores 1,2,3 y 4, segn la posicin que ocupe cada

subgrfica.

1.5 Programacin con MATLAB.


Como ya habamos mencionado MATLAB es un lenguaje de muy alto

nivel, muy poderoso con un ambiente computacional interactivo. La gran ventaja que

tiene programar con MATLAB ya la habamos visto y es que no se requiere declarar las variable ni sus tipos al principio del programa ya que estas se definen automticamente como se van usando.
A los que podemos llamar cdigos fuente en MATLAB se les conoce como

archivos m (M-files), tiene por extensin de tipo de archivo

*.m, y existen 2

Laboratorio de Control

19

Facultad de Ingeniera Elctrica

tipos de M-files y son los de tipo funcin y los de tipo script. Para ver el contenido de una M-file utilizamos el comando type nombre_del_M-file. Las Funciones pueden aceptar datos o argumentos de entrada y regresan datos de salida. las variables internas de una funcin son variables locales. Los Scripts no aceptan datos de entrada o producen argumentos de salida, usan datos de variables que se han usado previamente en la sesin con MATLAB.
Los M-files ms importantes y ms usados son las funciones, dentro de su

estructura se pude incluir:


" " " " "

Comentarios (se inician con el smbolo %). Instruccin para leer los datos de entrada. Instrucciones a ejecutar. Instrucciones para escribir los datos de salida. Instruccin end, para terminar la funcin.

Para crear y/o editar un M-file, se puede utilizar cualquier editor de textos; Lo nico que se debe de hacer es guardar el archivo como archivo de texto con la terminacin *.m. Por otro lado podemos utilizar el editor de M-files que se encuentra en el men File>>New>>M-File. 1.5.1 Instrucciones bsicas de programacin. A continuacin describiremos las instrucciones bsicas que se requieren dentro de un programa de MATLAB, las cuales nos permitiran crear programas simples pero ilustrativos para el potencial que MATLAB nos ofrece.
Una caracterstica vital de un lenguaje de programacin es la habilidad de poder cambiar la secuencia de ejecucin de instrucciones, dependiendo de que se

satisfagan condiciones que pueden estar ligadas a valores de variables generados durante la ejecucin del programa. En MATLAB las declaciones ifend, if-else-end, elseif, switch-case, for, while.
Tabla 1.11 Estructuras de control.

Forma General
if condicin declaraciones end

Ejemplo
%Archivo uso_IF-END %Pide un dato de entrada y escribe como %salida si aprueba o no. calif = input ('Dame la calificacion: ') if calif >= 7.5 fprintf('Felicidades!! Aprovaste.') end if calif < 7.5 fprintf('Estas Reprobado.') end
La

Descripcin
condicin del if puede

contener
lgicos; S la se cumple se

operadores
condicin

ejecutan las declaraciones siguientes hasta end.

Laboratorio de Control

20

Facultad de Ingeniera Elctrica


if condicin delcaracin A ... declaracin N else declaracin a ... declaracin n end %Archivo uso_IF-ELSE-END %Pide un dato de entrada y escribe como %salida si aprueba o no. calif = input ('Dame la calificacion: ') if calif >= 7.5 fprintf('Felicidades!! Aprovaste.') else fprintf('Estas Reprobado.') end
Se comporta igual que el

anterior. Lo que se hace es que si se


cumple

se ejecutan las declaraciones desde A hasta


N y despus salta hasta

la condicin de

if

end; Pero si no se cumple la condicin de if, se ejecutan las declaraciones de a hasta n que contiene else. Esta es la tercera forma de utilizar el if. Con esta forma se pueden checar un mayor nmero de
condiciones.

if condicin 1 declaraciones A elseif condicin 2 declaraciones B elseif condicin 3 declaraciones C ... elseif condicin n declaraciones N end

%Archivo uso_IF-ELSEIF-END %Pide un dato de entrada y escribe como %salida si aprueba o no. calif = input ('Dame la calificacion: ') if calif >= 7.5 fprintf('Felicidades!! Aprovaste.') elseif calif < 7.5 fprintf('Estas Reprobado.') end

Lo que ocurre es que checa


cul de las condiciones se

cumple

ejecuta

las

declaraciones contenidas por la condicin y al terminar

salta hasta end.


Esta estructura

switch expresin %Archivo uso_SWITCH-CASE %Pide un dato de entrada y escribe como case valor 1 declaracin a1 %salida si aprueba o no. calif = input ('Dame la calificacion: ') ... declaracin aN switch calif case {7.5,8,8.5,9,9.5,10} case valor 2 fprintf('Felicidades!, Aprobo.') declaracin b1 case {0,0.5,1,2,3,4,4.5,5} ... fprintf('Usted Reprobo.') declaracin bN otherwise ... fprintf('No fue sificiente.') otherwise end declaracin c1 ... declaracin cN end for variable = %Archivo uso_FOR1 %Suma los 10 primeros enteros. expresin declaracin suma = 0; 1 for i = 1:10 suma = suma + i; declaracion 2 end ... fprintf('La suma es %g.', suma)
declaracin n declaracin a2

es

utilizada

para saber si una expresin es igual a algn valor determinado. No se pueden checar condiciones como a<5 o b<=3; Sin embargo, esta estructura se puede aplicar en donde se requiere ejecutar distintas declaraciones dependiendo del valor de una expresion. Cada valor puede ser
nmerico o una cadena de

texto. Como se puede observar cada case puede tener 1 o ms valores. Esta estructura se
para formar ciclos o

utiliza
lazos

end

----------------------------------------%Archivo uso_FOR2 %Suma solo los valores pares entre 1 y 10 suma = 0; for i = 1:2:10 suma = suma + i; end fprintf('La suma es %g', suma)

de instrucciones que se tiene que repetir un nmero determinado de veces. Si se cumple variable = expresin, entonces se ejecutan las declaraciones contenidas en el ciclo y despus continuar con la declaracin que esta despus del end. Si no se cumple , no se ejecutan las declaraciones solo se ejecuta la que esta despus del end. Es posible que las declaraciones dentro del

Laboratorio de Control

21

Facultad de Ingeniera Elctrica


for no se ejecutan ni una sola vez.
Tambin se pueden enbeder

ciclos for en ciclos for. while condicin declaracin 1


declaracin 2

%Archivo uso_WHILE %Calcula el volumen de 5 esferas %, el radio aumenta 1 a 1. r = 0; while r < 5 r = r+ 1; vol = (4/3)*pi*r^3;
fprintf('Radio = %g Volumen = %g \n',

... declaracin N

Esta estructura nos sirve para ejecutar indeterminado nmero de veces un conjunto de instrucciones. Su funcionamiento es: si la
condicin

end

r, vol) end

ejecuta la primera instruccin despues del end; Pero si la condicon se hasta la N. en este punto se vuelve a checar que se cumpla o no la condicn, si
esta se cumple se siguen ejecutando las declaraciones

no

se cumple

se

cumple se ejecutan todas las declraciones desde la 1

hasta que la condicin no se cumpla.

Como ya vimos en las estructuras podemos encontrar el uso de operadores lgicos y de relacin, los cuales MATLAB soporta, y son los siguientes:
Tabla 1.12 Operadores de Relacin.

Operador > < >= <= == ~=

Descripcin
Mayor que Menor que Mayor o igual que Menor o igual que Igual a No igual a, distinto de

Tabla 1.13 Operadores Lgicos.

Operador Definicin & |


AND lgico

Ejemplo
(a>b) & (x<5) Si

Descripcin
se cumplen las 2 condiciones resultado es 1, pero si solo el se 2

cumple una el resultado es 0. OR lgico


(a>b) | (x<5) Si se cumple
es 1,

cualquiera
y si no

de
se

las el
cumple

condiciones
resultado

simultneamente

ninguna, el resultado es 0.

NOT

~(a>b)

Si se cumple la condicin el resultado es 0 y si no se cumple el resultado es 1.

Laboratorio de Control

22

Facultad de Ingeniera Elctrica

XOR

OR exclusivo xor(a>b,x<5) Si se cumplen o no las 2 condiciones


simultneamente el resultado es 0, y si slo se cumple una, el resultado

es 1.

1.5.2 Funciones (Funtion M-FILES). Como ya se describio anteriormente los archivos ms usados y creados
en MATLAB son los archivos del tipo funcin, estos archivos son subpregramas

que se pueden utilizar para escribir un programa muy grande.

funtion y = operacin(x) declaraciones de la funcin y = operacin


Figura 1.13 Forma de una funcin.

Donde x es el parmetro o argumento de entrada, y es el parmetro de salida y operacin es el nombre de la funcin. Para demostar la forma bsica de una

funcin vamos a realizar el ejemplo de calcular el factorial de un nmero.


funtion x = factorial(n) %Esta funcin calcula el factorial de n %Archvio factorial.m if n == 0 factorial = 1; else for i = 1:n factorial = factorial * i; end end x = factorial

Figura 1.14 Funcin factorial.

Laboratorio de Control

23

También podría gustarte