550 likes | 946 Vues
MATrix LABoratory “MATLAB” TECNOLÓGICO DE MONTERREY CAMPUS SALTILLO. Dr. Marco Iván Ramírez-Sosa Morán http ://www.geocities.com/mirsm/matlabprint.ppt. MATrix LABoratory MATLAB. PROGRAMACIÓN BÁSICA Y APLICACIONES. Contenido. Desktop de Matlab Command Window Workspace Command History
E N D
MATrixLABoratory“MATLAB”TECNOLÓGICO DE MONTERREY CAMPUS SALTILLO Dr. Marco Iván Ramírez-Sosa Morán http://www.geocities.com/mirsm/matlabprint.ppt CURSO DE MATLAB ITESM SALTILLO
MATrixLABoratoryMATLAB PROGRAMACIÓN BÁSICA Y APLICACIONES CURSO DE MATLAB ITESM SALTILLO
Contenido • Desktop de Matlab • Command Window • Workspace • Command History • Current Directory • Tipos de programación • Programación en el CW • Asignación de valores • Operaciones básicas con variables • Formatos de presentación • Iteraciones y bifurcaciones • Vectores • Gráficas 2D y 3D • Polinomios • Matrices • Imágenes RGB, JPG • Sistemas de ecuaciones • Funciones de transferencia • Matlab simbólico • Programación de archivos *.m • Del CommandHistory • Creación de Funciones • Programación en Simulink • Interacción Matlab-Simulink CURSO DE MATLAB ITESM SALTILLO
Desktop de Matlab(Ventanas más importantes) • Command Window: • Donde se ejecutan las funciones y se realizan operaciones en forma de calculadora. Todo lo que se escribe en esta pantalla se graba en el Command History, y se pueden buscar operaciones anteriores con las flechas hacia arriba y abajo con la primera letra de la palabra a buscar). Se ponen comentarios con %. CURSO DE MATLAB ITESM SALTILLO
Desktop de Matlab • Workspace: • Variables definidas (nombre, valor y tipo de dato) Se puede grabar, borrar y cargar variables guardadas. CURSO DE MATLAB ITESM SALTILLO
Desktop de MatlabOtras ventanas • Command History: • Comandos y operaciones ejecutadas con anterioridad. La lista aparece separada por fechas automáticamente CURSO DE MATLAB ITESM SALTILLO
Desktop de MatlabOtras ventanas • Current Directory: • Lugar donde se almacenarán archivos de datos, de programa y funciones creadas por usuario. (Se puede cambiar usando comandos de windows o usando los íconos en la misma ventana) CURSO DE MATLAB ITESM SALTILLO
Tipos de Datos • Complex Double-Precision Matrices • Numeric Matrices • Logical Matrices • MATLAB Strings • Cell Arrays • Structures • Objects • Multidimensional Arrays • Empty Arrays CURSO DE MATLAB ITESM SALTILLO
TIPOS DE PROGRAMACIÓN1. En el Command Window • Se asignan valores a variables de diferentes tipos, constantes, vectores, matrices, arreglos de caracteres, etc. >>A=34 >>B=[1 2 3;4 5 6] >>i='hola‘ >>m=['A34';'A25'] >>v=[1 2 3 4] >>Q=[1;2;3;4] >>r=3.14 >>E=1.23333e4 >>u=j >>I=9+8*j CURSO DE MATLAB ITESM SALTILLO
Programación en el CommandWindow … • Se realizan operaciones con constantes ya definidas por default o por el usuario >>3*8 >>1/pi >>9-4 >>78*[3;5;2] >>78^2 >>1/eps >>[‘s’ ‘a’ ‘ltillo’] >>intmin >>realmax >>i/2 >>[2 3 4]+[8 9 10] CURSO DE MATLAB ITESM SALTILLO
Programación en el CommandWindow … • Se evalúan funciones con argumentos definidos y los resultados se pueden asignar a variables o manejar en la variable ans >>sin(30) >>floor(3.5) >>3*exp(-6) >>x_1=factorial(6) >>y=tan(4)/abs(9+3*i)>>ans/3 >>var_num_4=5+[3 0 -5] CURSO DE MATLAB ITESM SALTILLO
Programación en el CommandWindow … • Las asignaciones de variables se alamacenan en el Workspace y las de operaciones sin asignación se almacenan en la varibleans • Funciones de windows y propias de matlab que se pueden ejecutar desde la ventana de comandos: dircddeletecloseclearclcwhoswhowhat home whichisvarname CURSO DE MATLAB ITESM SALTILLO
Programación en el CommandWindow … • Las variables almacenadas en el Workspace pueden ser grabadas en un archivo con el comando: >>saveNom_ArchNom_Var (sólo graba una) >>saveNom_Arch (graba todas) CURSO DE MATLAB ITESM SALTILLO
Programación en el CommandWindow … • Las variables almacenadas en el Workspace pueden ser borradas con el comando: >>clearNom_Var (sólo borra una) >>clearall (borra todas) CURSO DE MATLAB ITESM SALTILLO
Programación en el CommandWindow … • Las variables grabadas pueden recuperarse en cualquier momento con el comando: >>load Nom_Arch >> load C:\matlab71\work\Nom_Arch CURSO DE MATLAB ITESM SALTILLO
Formatos de presentación • FORMAT SHORT • FORMAT LONG • FORMAT SHORT E • FORMAT LONG E • FORMAT SHORT G • FORMAT LONG G CURSO DE MATLAB ITESM SALTILLO
Formatos de presentación … • FORMAT SHORT ENG • FORMAT LONG ENG • FORMAT HEX • FORMAT BANK • FORMAT RAT • FORMAT COMPACT • FORMAT LOOSE CURSO DE MATLAB ITESM SALTILLO
Iteraciones y bifurcaciones: For & While >> for i=inicio:paso:fin ... %operaciones a iterar end >> >>while (condición) ... %operaciones a iterar end >> CURSO DE MATLAB ITESM SALTILLO
Iteraciones y bifurcaciones: if & elseif >>if (condición 1) ..... elseif (condición 2) …. else (no se cumplen 1 y 2) … end >> CURSO DE MATLAB ITESM SALTILLO
Iteraciones y bifurcaciones: Switch & case >>switch switch_expresion case case_expresion, … case {case_expr1, case_expr2,...} … otherwise …. end >> CURSO DE MATLAB ITESM SALTILLO
Tipos de datosARREGLOS • Vectores (Arreglos unidimensionales) operaciones con vectores: normas, longitud, suma y producto, etc. >>v1=[1 2 3];%vector renglón >>v2=[1;2;3];%vector columna >>v3=3:.5:10;%vector con paso, inicio y fin >>v4=ones(1,4);%vector de unos >>v5=zeros(5,1);%vector de ceros CURSO DE MATLAB ITESM SALTILLO
Vectores • Elementos de un vector, asignación y presentación Nom_vector(#reng or #col) >>v1(2) >>v2(3) >>v3(4:end) >>v3(1:3)=[.1 .3 .5] >>v3(1:2:end) >>m=find(v3==7) >>v3(m) >>[M i]=max(v3) >>n=length(v4) >>v4(n) >>v0(10)=3 >>v0(1:9)=rand CURSO DE MATLAB ITESM SALTILLO
Vectores … • Operaciones con vectores: >>vt=v3’ %transpuesta de un vector >>d=norm(v3) %norma Euclideana >>v6=[1 2 3]/2+[5 6 7]-[4 0 2]*4+.5 >>v7=[3 5 6].*[1 -4 0] %prodHadamard >>v8=[2 4 8].^2 %potencia de cada elemento >>v9=[v6 v8 v7] >>d1=norm(v9) >>s=sum(v9) >>d1=sqrt(sum(v9.^2)) CURSO DE MATLAB ITESM SALTILLO
Gráficas con Vectores • Graficar y1=sin(t)^2, t entre 0 y 10 seg >>t=0:.1:10; >>y1=(sin(t)).^2; >>plot(y1) >>plot(t,y1) >>plot(t,y1,’xr’) >>xlabel(‘tiempo s’),ylabel(‘voltaje v’) >>title(‘grafica de y_1 = (sin (t))^2’) CURSO DE MATLAB ITESM SALTILLO
Gráficas con Vectores • Cerrar y abrir figuras >>figure(1) >>close >>figure(2),figure(5) >>close all • Empalmar figuras >>figure(1) >>y2=3*sin(0:.1:10);y3=sin(0:.1:10); >>plot(y2,’r*’);hold on;plot(y3,’om’); >> grid,axis([0 100 -4 4]),hold off CURSO DE MATLAB ITESM SALTILLO
Gráficas con Vectores • Gráficas 3D >>x=[-2:.1:2]; >>y=[-2:.1:2]; >>z1=sin(x).^2+cos(y).^2; >>z2=cos(x).^2+sin(y).^2; >>plot3(x,y,z1) >>hold on,plot3(x,y,z2) >>grid CURSO DE MATLAB ITESM SALTILLO
Gráficas 3D • Mallas de datos >> [xm ym]=meshgrid(x,y); >> z2=cos(xm).^2+sin(ym).^2; >> mesh(xm,ym,z2) >> figure,surf(xm,ym,z2) >> figure,meshc(xm,ym,z2) >> figure,meshz(xm,ym,z2) CURSO DE MATLAB ITESM SALTILLO
Gráficas con Vectores • Polígonos: >>x=[0 0 1 1 0];y=[0 1 1 0 0]; >>plot(x,y),axis([-3 4 -3 4]),hold on, plot(x,y,'or') • Mover polígonos: >>x1=x+1.5;plot(x1,y),y1=y-1.5;plot(x1,y1) CURSO DE MATLAB ITESM SALTILLO
Gráficas con Vectores • Escalamiento y movimiento de polígonos: >>closeall,clearall >> x=[0 0 1 1 0];y=[0 1 1 0 0]; >>for i=0:.1:5 x1=x*i+i;y1=y*i+i*i plot(x1,y1),holdon axis([-3 25 -3 25]) end >> CURSO DE MATLAB ITESM SALTILLO
Rotación de vectores • Rotación a la derecha >>vector=[1:10] >>vector=[vector(2:end) vector(1)] • Rotación a la izquierda >>vector2=1:10 >>vector2=[vector2(end) vector2(1:end-1)] CURSO DE MATLAB ITESM SALTILLO
Vectores como polinomios • Polinomio p(x) = 7x^4+5x^2-4x+3 se representa en Matlab: >>p=[7 0 5 -4 3]; • Raíces del polinomio: >>r=roots(p) • Evaluación del polinomio: >>pval_1=polyval(p,-3) >>pval_2=polyval(p,r(1)) CURSO DE MATLAB ITESM SALTILLO
Polinomios • Producto de Polinomios >>p1=[1 0 1],p2=[1 -2 3] >>p3=conv(p1,p2) • Creación de polinomios con base en sus raíces >>p4=poly([1 1 1]) >>p5=poly([-1 -1 2 0]) >>p6=conv(p4,p5) >>raices=roots(p6) >>[factor,res]=deconv(p6,p4) %factorización CURSO DE MATLAB ITESM SALTILLO
Polinomios • Fracciones de polinomios >>num=[1 2 3]; >>den=[1 -4 5 -7]; >>f=tf(num,den) • Fracciones parciales >>[res, polos, kte]=residue(num,den) >>[num1, num2]=residue(res,polos,kte) CURSO DE MATLAB ITESM SALTILLO
Polinomios • Derivada de polinomios >>p = [1 0 -2 -5] >>q = polyder(p) CURSO DE MATLAB ITESM SALTILLO
Curvas de mínimos cuadrados • Valores de entrada x, salida y >>x = [1 2 3 4 5]; y=[5.5 43.1 128 290.7 498.4]; >>p=polyfit(x,y,1); %1 es el grado del polinomio >>x2 = 1:.1:5; >>y2 = polyval(p,x2); >>plot(x,y,'o',x2,y2) >>grid on CURSO DE MATLAB ITESM SALTILLO
MatricesArreglos n-dimensionales • Definición matriz nxm (n=reng,m=col) >>M1=[1 2 3 4 5;0 9 8 -1 2] %n=2,m=5 >>M2=ones(3,4) >>M3=zeros(2,3) >>M4=eye(4) >>M5=rand(5,2) >>M=pascal(5) >>M=magic(5) CURSO DE MATLAB ITESM SALTILLO
Tamaño, elementos y operaciones >>s=size(M1) >>n=s(1) >>m=s(2) >>M5(3,1) >>M6(3,5)=-1 >>M6(4,7)=pi >>M7=eye(size(M5)) >>M7+2*M5 >>M6(1,:) >>M6(:,1) >>M6(2,1:3) >>M6(4,1:2:7) CURSO DE MATLAB ITESM SALTILLO
Potencias de matrices >>B=A^2 %B=A*A >>C=A.^2 %element wise >>R=sqrt(A) %element wise >>R.^2 %A= R.^2 >>Q=sqrtm(A) >>Q^2 %A=Q*Q >>exp(A) %element wise >>D=expm(A) %A=logm(D) CURSO DE MATLAB ITESM SALTILLO
Matrices • Producto punto >>v=[1 2 3] >>w=[4 6 8] >>M1=v*w’ %producto punto M1 n=1,m=1 • Producto de vectores y matrices >>M2=v’*w %producto M2 n=3, m=3 >>M3=[1 0 2;0 1 -1];M4=[1 3;7 8;9 0]; >>M=M3*M4 % n=? m=? >>M=M4*M3 %???????? CURSO DE MATLAB ITESM SALTILLO
Imágenes >>I=imread(‘c:/trayectoria/archivo.jpg’); >> imshow(I) >> R(:,:,1)=I(:,:,1);R(:,:,2:3)=0; >> figure,imshow(R) >> G(:,:,2)=I(:,:,2);G(:,:,1:2:3)=0; >> figure,imshow(G) >> B(:,:,3)=I(:,:,3);B(:,:,1:2)=0; >> figure,imshow(B) CURSO DE MATLAB ITESM SALTILLO
Matrices • Sistemas de ecuaciones x1= 3 a + 2 b x2 = - 4 a + 8 b Evaluación con valores a y b conocidos: >>a=-1;b=3; >>x=[3*a+2*b,-4*a+8*b] >>x=[3 2;-4 8]*[a;b] CURSO DE MATLAB ITESM SALTILLO
Solución de sistemas de ecuaciones • Solución x1= 3 a + 2 b x2 = - 4 a + 8 b Dados x1 y x2 encontrar a y b: >>x=[4; -1]; >>M=[3 2;-4 8]; >>d=det(M) % d diferente de 0? >>sol=inv(M)*x;a=sol(1),b=sol(2) %existe? CURSO DE MATLAB ITESM SALTILLO
Pseudoinversa • Solución del sistema sobredeterminado: x1 = 3b + 4c x2 = -5b +2c x3 = b – 3c Dados x1, x2, x3 encontrar b y c >>x=[-1 0 4]’ >>M=[3 4;-5 2;1 -3]; >>sol=pinv(M)*x >>sol=M\x >>xapp=M*sol >>norm(x-xapp) CURSO DE MATLAB ITESM SALTILLO
Solución de sistemas de ecuaciones • Solución con a y b desconocidos x1 = 3 a + 2 b x2 = - 6 a - 4 b • Dados x1 y x2 encontrar a y b: >>x=[4 -1]’; >>M=[3 2;-6 -4]; %existe solución? >>x=[1 -2]’; >>solucion=???? %rank(M)==rank([M x]) inf CURSO DE MATLAB ITESM SALTILLO
Eigenvalores, Eigenvectores y Factorización de matrices • Polinomio característico de una matriz p(s) = det ( s I – A ) eigenvalores = {roots[p(s)]} >>A=rand(4,4); >>p=poly(A) >>r=roots(p) >>[V L]=eig(A) >>[K,J]=jordan(A) >>K*J*inv(K) >>[U S]=schur(A) >>U*A*U’ >>[U S V]=svd(A) >>U*S*V’ CURSO DE MATLAB ITESM SALTILLO
SYMBOLIC >>sym a b k t s % def variables simbol >>a+a+b+b+b >>a*a*a >>x=laplace(sin(t)) >>y=ilaplace(1/s) CURSO DE MATLAB ITESM SALTILLO
TIPOS DE PROGRAMACIÓN2. Creación archivos *.m • Archivos .m de listado de comandos y de funciones: • Programas de ejecución de comandos, lectura y grabación de datos con inicio: closeall, clearall, clc, sólo usa variables globales. • Programación de una Función: fuction() • Ejecución de una función desde un archivo *.m (usa variables locales y globales) CURSO DE MATLAB ITESM SALTILLO
Archivos *.m • Entrada y salida de datos de un archivo *.m c=input(‘Dame un dato numérico’); s=input(‘Dame un string’,’s’); disp([‘el dato numérico es ’ num2str(c)]) disp([‘el dato string es ’ s]) eval([s ‘_1=’ num2str(c)]) CURSO DE MATLAB ITESM SALTILLO
EJERCICIO 1 • Hacer un programa que grafique un paraboloide usando programación en el CW y en un archivo *.m CURSO DE MATLAB ITESM SALTILLO
Creación de unafunción • Definición dentro de un archivo *.m function [salida1,salida2,…] = nombre_funcion(arg1,arg2,…); … salida1=… salida2=… CURSO DE MATLAB ITESM SALTILLO