You are on page 1of 33

Tutorial de MATLAB

Prof. Jos Daniel Rodrguez Flores agosto 2011


1

Tutorial de MATLAB LEAN CON DETENIMIENTO LOS PRRAFOS SIGUIENTES Y NO INTENTE INTRODUCIR DATOS HASTA QUE SE LE INDIQUE: Matlab es una herramienta poderosa usada por ingenieros y cientficos de todo el mundo para resolver diversos problemas que requieren clculos complejos bajo una secuencia de instrucciones y respaldado por una compaa de software Profesional: The Math Works Inc. La parte de este taller esta orientado para que el estudiante tenga capacidad de graficar seales. Su contenido se enumera a continuacin: 1.- Matrices y operadores. 2.- Funciones y comandos propios de Matlab. 3.-Graficacin de seales.
2

Tutorial de MATLAB

Sobre las pantallas que aparecen al abrir el programa:


Al abrir MATLAB normalmente aparecen tres pantallas (versin 6.0 en adelante) : 1.- La primera de la izquierda (launch pad) en donde se localizan todos los directorios y demos. 2.- La segunda abajo a la izquierda (command history) en la parte inferior donde se genera un histrico de los comandos y variables que se usan. 3.- La tercera de la derecha (command window) se considera la pantalla principal y es precisamente donde se declaran las variables y comandos de un programa en la cual se ubica el smbolo . Ver Fig.1.
3

Tutorial de MATLAB

Fig. No. 1 Pantallas de MATLAB versin 6.0

Tutorial de MATLAB
EL INDICADOR : ( command esperando variable. pertinente use ESCALAR, VECTOR Y MATRIZ: escalar. una sola fila o vector; para ser vector columna. Matriz : -2 0 3 El smbolo >> en la pantalla principal window) nos indica que MATLAB esta que introduzcamos un comando o una Para salir de MATLAB cuando sea los comandos quit o exit. A = 2.5 Un slo dato se denomina B = [2.5, 6.4 ] Si una matriz tiene una sola columna, la llamamos ms claros llamamos vector fila o
5

El tamao de una matriz se especifica por

Tutorial de MATLAB

ESTILO Matlab es sensible a la diferencia entre maysculas y minsculas, as que los nombres Espacio, ESPACIO y espacio representan tres variables distintas. Matlab tiene la posibilidad de manejar nmeros reales (ejem. 12.7 10-2 se escribe 12.7 e-2 ) el nmero complejo de parte real 5 y parte imaginaria 2 se representa en matlab 5+2*i o como 5+j*2, las letras i y j se preasignan ambas en matlab para ser Iguales a -1. otras constantes son pi para . DEFINICIN DE UNA MATRIZ La forma ms sencilla de definir una matriz es usar una lista de nmeros, como : A = [4.5] B = [1.6, 3.1]

Tutorial de MATLAB
PUNTOS SUSPENSIVOS Si hay demasiados nmeros en una fila de una matriz para que quepan en una lnea, podemos continuar la instruccin en la siguiente lnea, pero se requiere una coma y tres puntos al final de la lnea para indicar que la fila debe continuar. Ejemplo: H = [-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2] que se puede escribir como: H = [-2,0,-3,4,-3,-4,... 5,0,0,2,1,1,1,3,4,-0.2] MATLAB tambin nos permite definir una matriz que ya se defini: Ejemplo: B =[1.5, 4.1] D = [-3, B] este comando equivale a D = [-3,1.5,4.1]

Tutorial de MATLAB Tambin podemos modificar los valores de una matriz o agregar valores adicionales usando una referencia a un lugar especfico. Por ejemplo: D(3) = 6 ; Cambia el tercer valor de la matriz D del valor 4.1 por 6, para quedar como: D = [-3,1.5,6] As tambin logramos extender una matriz definiendo nuevos elementos. Si ejecutamos el siguiente comando D(4) = 2.5 ; La matriz D tendr cuatro valores en lugar de tres, as D se ver como D = [-3, 1.5, 6, 2.5]; El punto y coma ; termina la instruccin y oculta la exhibicin del resultado de la operacin. 8 Teclee D = [-3, 1.5, 6, 2.5] ahora Teclee D = [-3,

Tutorial de MATLAB AHORA SI EMPIECE A TECLEAR DATOS Y COMANDOS DE LOS SIGUIENTES EJERCICIOS SLO TECLEA LOS VECTORES NO ESCRIBAS EL COMENTARIO %
El punto y coma ; termina la instruccin y oculta la exhibicin del resultado de la operacin. Teclee D = [-3, 1.5, 6, 2.5] ahora Teclee D = [-3, 1.5, 6, 2. B = [ 2; 4; 6; 10] C = [ 5, 3, 5 ; 6, 2, 3 ] E = [ 3, 5, 10, 0; 0, 0 , ... 0, 3; 3, 9, 9, 8 ] T = [ 4, 24, 9 ] Q = [ T, 0, T ] V = [ C ( 2, 1); B ] VECTOR B. % INTERCALA UN VALOR DE CERO ENTRE DOS VECTORES. % DE LA MATRIZ C SELECCIONA EL VALOR (m, n) Y LO AGREGA AL 9 % DEFINE UN VECTOR COLUMNA. % DEFINE UNA MATRIZ 2 x 3. % COMA Y TRES PUNTOS PARA CONTINUAR UNA LINEA.

Tutorial de MATLAB
Lee los siguientes comentarios y prueba su validez: El operador de dos puntos es til para generar matrices nuevas; Si se usa un signo de dos puntos para separar dos enteros, el operador de dos puntos generara todos los enteros entre los dos enteros especificados. tecle: n = 1 : 10 generar los ndices % Este operador es especialmente til para de tiempo de una seal de tiempo discreto.

Tambin se usan los signos de dos puntos para separar tres nmeros, el operador de dos puntos generar valores entre el primer nmero y el tercero, usando el segundo nmero como incremento: tecle: t = 0.0:0.5:6.0 % este operador es especialmente til para generar los ndices de tiempo continuo o un dominio de una funcin analgica. El incremento tambin puede ser negativo 10 tecle:

Tutorial de MATLAB EN LO SUSECIVO TRATE EN CADA EJEMPLO DONDE LO CREA ADECUADO DE PROBAR LA AUTENTICIDAD DE LOS COMANDOS Funciones especiales para generar matrices nuevas. La funcin size devuelve dos argumentos escalares que representan el nmero de filas y el nmero de columnas, podemos usar size para generar una matriz de ceros que tenga el mismo tamao que la otra matriz ejemplo: Tecle W = [ 4, 3, 2; 4, 6, 3 ]; F= zeros(size ( W ) ) La funcin ones genera una matriz que solo contiene unos. Tecle C= [1, 2, 3; 4, 2, 5]; D = ones(size(C)) Algunas ocacines es necesario conocer que variables se hallan definidas y que valores tienen almcenados el comando who lleva a cabo esta accin: Tecle who 11 Si desea dejar una variable sin definicin (sacarla de la lista ) se

Tutorial de MATLAB
Operaciones con escalares , vectores y matrices: Los operadores matemticos incorporados que se utilizan con frecuencia en matlab son:
smbolo
= + * ^ /

significado
Asignacin Adicin Multiplicacin Potenciacin Divisin

smbolo
.* .^ ./

significado Resta Multiplicacin de arreglo Potencia del arreglo Divisin del arreglo AND lgica NOT logica Transpuesta Transpuesta no conjugada 12

& ~
.

< >

Operadores relacionales OR lgico

l ==

Igualdad

Tutorial de MATLAB

Tecle el enunciado de asignacin siguiente; a=3; b=[2,6,4]; c=[4,10, 2]; los vectores y matrices pueden multiplicarse por un escalar: tecle: a*b ans es el nombre dado a un resultado cuando el usuario no le asigna un nombre. Un escalar puede sumarse a un vector o matriz: tecle: a+c La suma de un escalar a un vector o matriz slo aade el escalar a cada elemento del vector o matriz la resta se define de manera similar: tecle: a-b

13

Tutorial de MATLAB
Los vectores y matrices se suman (o restan) como lo hacemos en matemticas, esto es, los dos vectores o matrices deben tener la misma forma para sumarse o restarse a menos que uno de ellos sea un matriz de 1*1, un escalar, como lo vimos antes : tecle: b+c c-b Los vectores y las matrices se multiplican de acuerdo a las reglas del lgebra: tecle: b*c Este resultado ilustra un error comn en Matlab. Las matrices deben ser conmensurables para ser multiplicadas utilizando el operador *. La premultiplicacin de un vector rengln de 1 por 3 como c por un vector rengln de 1 por 3 como b no esta definida. Sin embargo si c se transpusiera a un vector columna 3 por 1, se definira la multiplicacin. La transposicin se efecta con el operador . tecle: c b*c
14

Tutorial de MATLAB
Operaciones elemento por elemento: A menudo es muy til multiplicar dos vectores o matrices de la misma forma, elemento por elemento en vez de utilizar las reglas usuales de la multiplicacin de matrices. Ese tipo de multiplicacin se denomina multiplicacin del arreglo en Matlab y se lleva a cabo utilizando el operador .* Las operaciones elemento por elemento, u operaciones de arreglos, no slo se aplican a operaciones entre dos matrices del mismo tamao, si no tambin a operaciones entre un escalar y un no escalar. As pruebe las instrucciones de cada uno de los siguientes juegos: tecle: A = [ 4, 3, 2, 4, 6 ]; C = 3.*A G = A./5 Las vectores resultantes C y G tendrn el mismo tamao que A.
15

Tutorial de MATLAB
A fin de ilustrar las operaciones de arreglos para vectores, considere los dos siguientes vectores fila: Tecle: B = [ -6, 3, -2, 4, 6 ]; Calculemos el producto de arreglos de A y B usando las siguientes instrucciones: Tecle: L = A.*B El comando de divisin de arreglos, Tecle: F=A./B Asimismo la exponenciacin de arreglos tambin es una operacin elemento por elemento ejemplos; Tecle: Z = A.^2 M = A.^B Tambin podemos usar una base escalar con un exponente vector como; P= 3.^A

16

Tutorial de MATLAB
Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se aplican a matrices con filas y columnas, como lo podrs constatar declarando la matriz d ejecutando las operaciones indicadas: d= [ 1:6; -1:-1:-6 ]; f=d.*6 w=d.^2 GRAFICA X vs. Y: Grficas x vs. y sencillas. Suponga que queremos graficar los siguientes datos recabados de un experimento con un modelo de coche de control remoto. El experimento se repite 10 veces, midiendo la distancia que un mvil recorre en cada ensayo. (x) Ensayo 1 2 3 4 5 6 7 8 9 10 (y) Distancia 58.5 63.8 64.2 67.3 71.5 88.3 90.1 90.6 89.5 90.4

17

Tutorial de MATLAB
Pruebe generar esta grfica: creando un vector llamado x con los datos de la columna Ensayo, y un vector llamado y con los datos de la columna Distancia y en seguida teclee : plot (x, y), grid y de enter Se genera automticamente la grfica. La buena prctica de ingeniera exige la inclusin de unidades y un titulo Por lo tanto en el cdigo anterior incluya los siguientes comandos: plot(x,y), title (Grfica de experimento), xlabel ( Ensayo), ylabel (Distancia), grid Si se agrega un tercer argumento en el comando plot ste controla el color y el estilo de la grfica. Es una cadena la que determina el color de la lnea, estilo de la misma y los smbolos (si los hay ) utilizado para los puntos de marca, por tanto intente dar elegancia a su grafica anterior agregando al comando plot: plot (x,y,ro), grid
18

Tutorial de MATLAB LISTA DE CARACTERES COLOR y amarillo m magenta c cyan r rojo guionada g verde b azul w blanco k negro MARCADOR . punto o circulo x marca x + ms * d v ^ ESTILO DE LINEA continua : punteada -. guin-punto --

asterisco s cuadrado diamante triangulo(hacia abajo) triangulo (hacia arriba)


19

Tutorial de MATLAB
Los archivos .m o archivos .M Este tipo de archivo es de lo ms importe que se puede generar por el usuario en MATLAB, es un archivo que ejecuta las instrucciones programadas en l, y que pueden convertirse en un comando de matlab. Ahora tu crearas un archivo .m Desde la ventana de matlab selecciona new, M-file Aparecer un blok de notas dentro de l, declara las siguientes variables: Tecle: t =[0:0.001:2]; % Este vector se puede tambin generar con: linspace(0,0.001,2). m = 2; y = m .*t; plot(t, y, 'r', linewidth,4),grid %linewidth, 4 : te da el grueso de la linea. Despus guarda este cdigo en el mismo blok de notas en la parte superior ( file save en el drive e: pendiente.m si es memoria USB) con el nombre pendiente.m, est nombre de archivo se convierte en un comando de Matlab con el nombre pendiente. Ejectalo en la pantalla de comandos llamndolo slo con su nombre pendiente sin la extensin.m (antes de llamarlo recuerda cambiarte 20 de directorio del C: al e: con la instruccin cd e: si es el caso) . Este archivo .m puedes llevarlo a otra computadora que tenga el

Tutorial de MATLAB

MATLAB provee excelentes funciones para grficas en una y dos dimensiones. Veamos un par de ejemplos sencillos. Suponga que queremos trazar la grfica de la funcin y=t^2*e(-t.^2); Esto lo podemos lograr con las instrucciones: Tecle: t=[-10:.1:10]; % La primera instruccin divide el intervalo [-10,10]en subintervalos de largo 0.1 y=t .^2 .*exp(-t.^2); % Esta lnea evala la funcin en los puntos. plot(t,y,'linewidth',4),grid % Grafica la funcin.

21

Tutorial de MATLAB

Supongamos ahora que queremos dibujar una superficie: Tecle: x=-10:0.5:10; %Las primeras dos instrucciones dividen los ejes de x" y "y" en subintervalos de largo 0.5. y=x; [X,Y]=meshgrid(x,y); %la tercera instruccin genera una rejilla en el conjunto [-10,10] x [-10,10] con cuadraditos de lados 0.5 , Z=X.^2.*exp(-Y.^2); % La cuarta instruccin evala la funcin en los puntos de la rejilla, y finalmente trazamos la superficie con surf. surf(X,Y,Z),title('Grafica de superficie')
22

Tutorial de MATLAB
GRAFICAS LINEALES Y LOGARTMICAS: La mayor parte de las grficas que generamos dan por hecho que los ejes x vs. y se dividen en intervalos equiespaciados; estas grficas se llaman grficas lineales. Una escala logartmica (de base 10) es til cuando una variable abarca varios rdenes de magnitud. Los comandos MATLAB para generar grficas lineales y logartmicas de los vectores x y y son los siguientes plot (x,y) y. semilogx (x,y) escala semilogy (x,y) escala loglog (x,y) escalas Genera una grfica lineal con los valores de x y Genera una grfica de los valores de x y y usando una logartmica para x y una escala lineal para y. Genera una grfica de los valores de x y y usando una lineal para x y una escala logartmica para y. Genera una grfica de los valores de x y y usando
23

logartmicas tanto para x como para y.

Tutorial de MATLAB GRAFICAS MULTIPLES: Una forma sencilla de generar curvas mltiples en la misma grfica es usar mltiples argumentos en un comando de graficacin, como en Plot (x, t, y ,t) Al ejecutarse este programa, se traza la curva correspondiente a x versus t, y luego se traza en la misma grafica la curva correspondiente y versus t. Ms adelante se ver como utilizar estos comandos ( tarea cdigo 3). Tarea: Comenta (con %) los comandos en los siguientes tres cdigos, usa archivos .M, imprime tus graficas y presntalos al maestro del curso son parte de la evaluacin del mismo.

24

Tutorial de MATLAB Cdigo No.1 v1=[0:0.001:.7979]; w1=298; q=1.6022e-19; n=1.5; k=1.38e-23; num1=q.*v1; den1=n*k*w1; M1=num1./den1; x1=1e-9.*exp(M1); v2=[0:0.0001:.6379]; w2=358; num2=q.*v2; en2=n*k*w2; M2=num2./den2; x2=1024e-9.*exp(M2); plot(v1,x1,'b',v2,x2,'r'), title('ECUACION DEL DIODO'), legend('TEMPERATURA 298k', 'TEMPERATURA 358k'), grid

25

Tutorial de MATLAB SUBGRFICAS: El comando subplot permite dividir la ventana de grficos en subventanas. Las posibles divisiones pueden ser dos subventanas o cuatro subventanas o incluso 8 ventanas en una hoja.. Los argumentos del comando subplot son tres enteros: (m, n, p). Los dgitos m y n especifican que la ventana de grficos se divida en una retcula de m por n ventanas ms pequeas, y el digito p especifica la p-sima ventana para la grfica actual ( donde se ubica esta grafica) . Las ventanas se numeran de izquierda a derecha y de arriba abajo. Por ejemplo el siguiente comando Subplot(2,1,1), plot(x,y) especifica que la ventana de grficos se divida en una grafica superior y una inferior ( dos lneas de graficas en una columna ) y que la grafica actual plot(x,y) se coloque en la ventana superior (cdigo No.2). El siguiente juego de instrucciones genera cuatro graficas que ilustran la funcin del comando subplot empleando escalas lineales y logartmica. 26

Tutorial de MATLAB Cdigo No. 2 t=[0:0.001:1]; f=2; w=2*pi*f; x=((1/2).*(1+cos(2*w.*t))); subplot(2,2,1),plot(t,x,'r','linewidth',2),grid,... subplot(2,2,2),semilogx(t,x,'b','linewidth',2),grid,... subplot(2,2,3),semilogy(t,x,'r','linewidth',2),grid,... subplot(2,2,4),loglog(t,x,'b','linewidth',2),grid Cdigo No. 3 t=[-6*pi:.001:6*pi]; w1=2/3; w2=1/2; w3=1/3; x1=2.*sin(w1.*t); x2=3.*sin(w2.*t); x3=4.*sin(w3.*t); plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide completa un numero entero de ciclos'),grid

27

Tutorial de MATLAB

Cdigo No. 3 t=[-6*pi:.001:6*pi]; w1=2/3; w2=1/2; w3=1/3; x1=2.*sin(w1.*t); x2=3.*sin(w2.*t); x3=4.*sin(w3.*t); plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide completa un nmero entero de ciclos'),grid

28

Tutorial de MATLAB

Cdigo No.4 t=0:.001:1; x=2*sin(8*pi*t); plot(t,x,'r','linewidth',2),grid n=0:1:15; y=2*sin(8*pi*(1/15)*n); subplot(2,1,1),plot(t,x,'r','linewidth',3),grid,subplot(2,1,2),st em(n,y,'linewidth',3),grid

29

Tutorial de MATLAB

30

Tutorial de MATLAB

Intenta crear una grafica usando el ciclo for

Tele t=[-1:.005:1]; f=1; w0=2*pi*f; x=1.5*ones(size(t)); for i=1:100; x=x+((-1)^(i+1))*(1/i)*sin(i*w0.*t); end plot(t,x,'r','linewidth',2), grid

31

Tutorial de MATLAB

Una ms t=[-2:0.001:2]; x=0.25*ones(size(t)); for m=1:2:99 x=x+(-1)^((m-1)/2)*1/(m*pi)*exp(i*m*pi*t); end plot(t,x,'r','linewidth',2),grid

Saca tus conclusiones

32

Tutorial de MATLAB

Libro que se recomienda para ejercitar Matlab: Solucin de problemas de Ingeniera con Matlab,Delores M. Etter, Edit. Prentice Hall. Tutorial elaborado por Jos Daniel Rodrguez mayo 2012

33

You might also like