• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Parte2
 

Parte2

on

  • 2,391 views

 

Statistics

Views

Total Views
2,391
Views on SlideShare
2,346
Embed Views
45

Actions

Likes
0
Downloads
40
Comments
0

2 Embeds 45

http://www.eav.utch.edu.mx 36
http://www.slideshare.net 9

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Parte2 Parte2 Presentation Transcript

    • Programación en MATLAB Vlir – Componente 8
    • Inicialización de Matrices Inicialización de matrices A=[[…];[…];[…];…];A=[… ;…;…] Practica A=[[2 3 4];[1 3 5];[4 6 1]] B=[[1 7 -1];[0 -2 3]] Que retorna? [X1 X2]=size(A); X2=length(B); X3= det(A); A1=diag(A); A2=ones(fil,col); A3=zeros(fil,col); eye(fil,col); A(fil,col)=3; B=A(3,: ); triu(A);tril(A); CAPITULO - 2 2
    • Giros de una matriz ?? flipud(A);fliplr(A);rot90(A,num); Practica X = 1 2 3 Resultado 3 2 1 456 654 B(:,2)=[]; Que hace ?? flipud(X); fliplr(X); rot90(X,1);rot90(X,2);rot90(X,3) CAPITULO - 2 3
    • Operaciones … C=A’ ; D= A*B; E=B*A; F=inv(C); G=C*F; H=C.*F ; Cual es la diferencia ?? CAPITULO - 2 4
    • Operaciones … ⎧2a − 3b − 3c + d = −1 ⎪a − b + c = 1 ⎪ ⎨ [ A] ∗ [ x] = [b] ⎪− a + 2b − c − 2d = 0 ⎪b − c + 3d = 4 ⎩ [ x] = Inv([ A]) ∗ [b] = [ A] [b] CAPITULO - 2 5
    • Repaso Entorno de trabajo Comandos básicos Comandos de matrices Crear matriz Manipulación de matrices Funciones con matrices CAPITULO - 2 6
    • Agenda Crear carpeta de trabajo Operadores de relación Operadores lógicos Funciones de Fecha Polinomios Archivos *.m Ejercicio del día CAPITULO - 2 7
    • Como crear carpeta ?? [e m im] = mkdir curso [e m im] =mkdir( 'c:matlab701work‘ , 'curso_matlab‘ ) [e m im] =rmdir curso cd c:matlab701workcurso_matlab %[S,M,MID] = COPYFILE(fuente, destino) %[S,M,MID] = MOVEFILE (fuente, destino) diary clases A=[2 3 4 -1; 2 9 0 3;1 2 4 0;2 0 5 1]; B=[A(1:4,1:3)];C=[2 1 0;1 1 2];D=[B ;C(1,:)] save matrices CAPITULO - 2 8
    • Operadores Relacionales > < == >= <= ~= Practica ⎡− 1 0 1 ⎤ ⎡0 0 0 ⎤ ⎢0 1 0 ⎥ ⎢ 0 2 − 1⎥ A=⎢ ⎥ A >= 2 ⎢ ⎥ ⎢5 6 3⎥ ⎣ ⎦ ⎢1 1 1⎥ ⎣ ⎦ find(A>=2) =? CAPITULO - 2 9
    • Operadores Lógicos A&B A|B ~A Xor(A,B) And(A,B) Or(A,B) Not(A) CAPITULO - 2 10
    • Practica … A(2,2:3); A(3,:); A(end,:); A(1:2,:); A([1 3 4],:); sqrtm(A); isequal(A,B) Convertir los elementos múltiples de 2 del vector en -3 CAPITULO - 2 11
    • Fecha y Hora clock : Año, mes, dia, hora, min, seg. now : lo mismo pero en número date ,datenum(clock): fechas calendar(y,m) : calendario n=datenum('09-Nov-2006'); ans=732990 n=datenum(2005,11,9); ans=732625 n=datenum(‘9.11.2005’,’dd.mm.yyyy’); ans=732625 calendar(2000,5) CAPITULO - 2 12
    • Polinomios p( x) : x − 8 x + 6 x − 10 = 0 4 2 q( x) : x + 5 x − 6 = 0 3 roots(p); polyval(p,2); conv(p,q); Polyder(p); CAPITULO - 2 13
    • Otras Funciones … exist(‘var’): return 0 si no existe isnan(A); si hay valores indeterminados isinf(A);si hay valores infinitos isempty(var); si la variable es nula ischar(var); si es cadena Prueba: Encontrar la posición en donde existe un valor indeterminado en la matriz X X=[1 2 3;NaN 2 inf] CAPITULO - 2 14
    • Archivos *.m CAPITULO - 2 15
    • Editor de MATLAB CAPITULO - 2 16
    • EDITOR Todo archivo *.m debe llevar el mismo nombre que el de la función principal. Ejemplos: Archivo: programa01.m function programa01 disp(‘Hola mundo’); Archivo: programa02.m function programa02(x,y) z=x+y; disp(‘La suma de ‘),disp(x), disp(‘con’),disp(y),disp(‘es ’),disp(z); A QUE SE LE LLAMA SCRIPT EN MATLAB ?? CAPITULO - 2 17
    • Importante Los nombres de las funciones y variables deben de comenzar con una letra mayúscula o minúscula y no deberá contener símbolos especiales a excepción del _ que es valido siempre y cuando no este al inicio, la misma regla se les aplica a los números. Ejemplo: Hola.m mi_primer_programa.m programa02.m programa_02.m CAPITULO - 2 18
    • Script --- Funciones X=[inf NaN 1 2 3 5] function f(X) X(find(isnan(X)))= -3 Y=2*X; X(find(isinf(X)))=-1 plot(X,Y); Y=2*X plot(X,Y);hold on stem(X,Y);hold off aproxSeno.m function [X Y Z] = Funcion(a,b,c,d) practica02.m X= 0:0.1:2*pi CAPITULO - 2 19
    • Mis primeros programas function programa03(t) x=sin(t); y=cos(t); plot(x,y),title(‘función parametrizada’); CAPITULO - 2 20
    • function z=programa04(n) ECO.m echo on clc; x=rand(3,4); y= x(abs(x)<0.4); [fil,col]=find(abs(x)<n); z=x(find(abs(x)<n)); disp('Matriz generada'); disp(x); disp('valores que cumplen condición'); disp(z); disp('ubicación en la matriz'); disp([fil,col]); end % tresFuncion.m CAPITULO - 2 21
    • RESUMEN layout ;set path ;workspace; comand windows Vector: Inicialización de vector, Operaciones. Matrices : Inicialización, operaciones, funciones. X1 = [1 2 3 4 0 -1] X2 = 0:8 X3 = 0:0.1:8 X4 = [1;2;3;3;2;0] X5 = [1+2i 2-i ; -2i 2-3i] X6 = ones(1,8); X7 = zeros(1,8); CAPITULO - 2 22
    • % linspace(inicial,final,numero) X8= linspace (-4,8,32); X9= 2*X8 – 1 X10 = abs(X1) X11 = abs(X5) stem(X8,X9); hold on stem(X9,’r’) CAPITULO - 2 23
    • Resolución de una ecuación function z= cuatroFuncion (f, ini, fin, n) clc; disp(‘ --manejo de vectores -- ’) pasos=(fin-ini)/n; x=ini:pasos:fin-pasos; y=eval(f); fplot(f,[ini fin,min(y) max(y)]); z= y(abs(y)<0.0001); ind=find(abs(y)<0.0001); point=x(ind); disp('valores en x= '),disp(point); disp('valores en y= '),disp(z); end % cuatroFuncion('x.^2 - 5*x + 6',1,3,10000) CAPITULO - 2 24
    • Condicional CAPITULO - 2 25
    • Problema Dos números son ingresados como parámetro de una función y se desea saber cual de los dos es mayor, realice una función que me permita saberlo. Se desea saber si el argumento ingresado como argumento es un escalar o un vector o una matriz . Realice una función que me permita determinarlo. CAPITULO - 2 26
    • Problema Una pc, esta conectada a un sensor de temperatura, para poder controlar un aire acondicionado de un hospital, se desea saber que acción esta ejecutando el computador dependiendo de la temperatura. Temperatura Acción 60º o mayor Alarma, posible incendio 60º - 40º Bajar la temperatura 21º - 38º Temperatura normal 15º - 21 Demasiado frío CAPITULO - 2 27
    • Condicional if (Condicion) if (Condicion1) Sentencias Sentencias end elseif (Cond2) Sentencias elseif(Cond3) if (Condicion) … Sentencias elseif(Condn) else Sentencias Sentencias Else end Sentencias end CAPITULO - 2 28
    • Condicional switch (Cond1) case 1 Sent; case 2 Sent; case {3,4,5} Sent; otherwise Sent; end Practica05a.m fact.m CAPITULO - 2 29
    • Practica Realizar una función que reciba los operandos como parámetro y el operador por teclado y muestre la respuesta. try – catch ?? practica05.m CAPITULO - 2 30
    • TIMER t = timer('StartDelay', 4,'Period', 4,'TasksToExecute',... 8,'ExecutionMode','fixedRate','StartFcn','start',… 'StopFcn','detener','ErrorFcn','malo','TimerFcn','tiempo'); CAPITULO - 2 31
    • Lazos CAPITULO - 2 32
    • Lazos while(cond) for i=ini:step:fin sent; sent; end end continue break return funcontrol.m fmovie.m aproxseno.m CAPITULO - 2 comparar.m 33
    • Como se representaría la siguiente función ⎧ x + 2; x ≤ −2 ⎪ ⎪( x + 1) − 1;−2 < x < −1 2 ⎪ 3 fun( x) = ⎨ x ;−1 ≤ x ≤ 1 ⎪− ( x − 1) 2 + 1;1 < x < 2 ⎪ ⎪ x − 2; otros ⎩ CAPITULO - 2 34
    • Practica Escribir un programa que pida por línea de comandos un entero (n) y luego calcule lo siguiente. 1. Mientras el valor de n sea mayor que 1, cambiar el entero por la mitad de su valor si el entero es par; si es impar cambiarlo por tres veces su valor mas 1. 2. Repetir estas operaciones cíclicamente y obtener el número de iteraciones hasta que el algoritmo se para en 1. Por ejemplo: para n=10 la secuencia es 5, 16, 8, 4, 2 y 1; entonces el número de iteraciones han sido 6 CAPITULO - 2 35
    • Tiro parabólico Se desea observar la trayectoria de un proyectil, el cual es lanzado con un velocidad inicial Vo y un ángulo de inclinación β. CAPITULO - 2 36
    • Operación con Bits dec2bin(dec); Convierte un entero a dec2bin(dec,N) binario.tiene que ser no negativo menor a 2^52 bin2dec(bin) b es string hex2dec(dec) Convierte decimal a hexadecimal dec2base(dec, bin); Convierte decimal a base Dec2base(dec, bin, N) b, la base debe de estar entre 2 -36 base2dec(str,base) Returna un numero CAPITULO - 2 37
    • Ejemplo a1 = dec2bin(26); disp(‘a1= ’),disp(a1);pause(20); a2= dec2bin(26,7); disp(‘a2= ’),disp(a1);pause(20); b1= bin2dec(a1); disp(‘b1= ’),disp(b1);pause(20); c1=dec2hex(45); CAPITULO - 2 38
    • Problema Una pc, esta conectada a un sensor de temperatura, por medio del puerto serial cuya misión es controlar un aire acondicionado de un hospital, se desea saber que acción esta ejecutando el computador dependiendo de la temperatura. La temperatura se ingresa en base 2 Temperatura Acción 60º o mayor Alarma, posible incendio 60º - 40º Bajar la temperatura 40º - 21º Temperatura normal 21º - menos Demasiado frio CAPITULO - 2 39
    • CELDAS CAPITULO - 2 40
    • Celda y Estructuras Nombre completo Nacionalidad Documento de identidad Tipo Número Fecha de expedición Fecha de caducidad Dirección de contacto Números de teléfono Número de la dirección de contacto Teléfono móvil de empresa Teléfono móvil personal CAPITULO - 2 41
    • Celdas Empleado1={‘Juan Pérez';‘Ecuatoriana'; ... {‘CI',091222222,12122000,12122000}; ... 'Calle Esperanza 12 1,2'; [251487, 698541]} Estructura Nombre=‘Juan Pérez’ Nacionalidad=‘Ecuatoriana’ Tipo=‘CI’ Numero=‘092121212’ Caduca = 12122000 … Empleado.Nombre; Empleado.Nacionalidad;… CAPITULO - 2 42
    • ESTRUCTURA fieldnames(ST) : devuelve un vector de celdas con cadenas de caracteres que recogen los nombres de los campos de una estructura isfield(ST,s) : permite saber si la cadena s es un campo de una estructura ST isstruct(ST) : permite saber si ST es o no una estructura rmfield(ST,s): elimina el campo s de la estructura ST getfield(ST,s): devuelve el valor del campo especificado. Si la estructura es un array hay que pasarle los índices como cell array (entre llaves {}) como segundo argumento. setfield(ST,s,v): da el valor v al campo s de la estructura ST. Si la estructura es un array, hay que pasarle los índices como cell array (entre llaves {}) como segundo argumento CAPITULO - 2 43
    • CELDAS cell(m,n): crea un cell array vacío de m filas y n columnas. celldisp(ca): muestra el contenido de todas las celdas de ca . cellplot(ca): muestra una representación gráfica de las distintas celdas. iscell(ca): indica si ca es un vector de celdas . num2cell(): convierte un array numérico en un cell array . cell2struct(): convierte un cell array en una estructura. struct2cell() convierte una estructura en un cell array. CAPITULO - 2 44
    • Practica … vc(1)={[1 2 3]} ;vc(2)={'mi nombre'}; c(3)={rand(3,3)} vb{1}=[1 2 3] ; vb{2}='mi nombre‘ ;vb{3}=rand(3,3) ST=cell2struct(vb,{'vector','cadena','matriz'},2) vbb = struct2cell(ST)' CAPITULO - 2 45
    • Forma ideal varargin, nargin varargout, nargout Argumento.m Practica05c.m CAPITULO - 2 46
    • syms Con este comando lo que se hace establecer una letra como un valor y así poder hacer sustitución literal. Ej: syms x F=2*x – 2 ; G=3 –x ; H=F*G;expand(H) findsym(F); % lo que hace es buscar en F la variable literal N=3; B=x.*((0:N)’*(0:N)); P1=expand(H); factor(P1); CAPITULO - 2 47
    • Syms s P2= -(1/6)/(s+3) – (1/2)/(s+1) + (2/3)/s; [N,D]= numden(P2); P3= 2*x / (x^2 -2*x); P4= simplify(P3); P5= subs(P4,x ,x-1);P6= collect(P5) Q=[1 2 -3 4 5] P7=Poly2sym(Q ,s); P8=sym2poly(P7) D = s^2 +6*s +9; s = solve(D) CAPITULO - 2 48
    • Ecuación literal syms c A = sym([2 -3; 5 c]); b = sym([3; 19]) x = Ab x= expand(x); CAPITULO - 2 49
    • Editar Ecuaciones fun1=inline('sin(x)*cos(x)','x'); fun2=inline('sin(x)*cos(y)','x','y'); fun3=@(x) exp(-(x. ^2+a. ^2)) fun4=@(x,y) exp(-(x. ^2+y. ^2)) fun5=@(b,z) z^aproxSeno(b) fsolv=fzero(Eq,[a,b]) eq=@(x) log(x)-sin(x); sol=fzero(eq,1); CAPITULO - 2 50
    • Gráficos Figure, hold, subplot, clf ,close(n) Ejemplo : X=pi:0.1:pi Y1=sin(x) Y2=cos(x) plot(X,Y2);hold on;plot(X,Y1); fplot('funcion', [xmin,xmax,ymin,ymax], ‘control', tol) ezplot(f, [xmin,xmax,ymin,ymax]); % figure('position',[left,botton, width,height]) fsubplotm.m leyenda.m Plot(X,Y2,’-b’) ?? CAPITULO - 2 51
    • plot(x,y,'-.rs', 'LineWidth',4, 'MarkerEdgeColor','k',... 'MarkerFaceColor', 'g','MarkerSize',10) CAPITULO - 2 52
    • Otros Gráficos bar() crea diagramas de barras barh() diagramas de barras horizontales bar3() diagramas de barras con aspecto 3-D bar3h() diagramas de barras horizontales con aspecto 3-D pie() gráficos con forma de “tarta” pie3() gráficos con forma de “tarta” y aspecto 3-D area() similar plot(), pero rellenando en ordenadas de 0 a y stairs() función análoga a bar() sin líneas internas errorbar() representa sobre una gráfica –mediante barras– valores de errores compass() dibuja los elementos de un vector complejo como un conjunto de vectores partiendo de un origen común feather() dibuja los elementos de un vector complejo como un conjunto de vectores partiendo de orígenes uniformemente espaciados sobre el eje de abscisas hist() dibuja histogramas de un vector rose() histograma de ángulos (en radianes) quiver() dibujo de campos vectoriales como conjunto de vectores newplot2.m CAPITULO - 2 53
    • Cadena de caracteres double(c) : convierte en numeros cada carácter Char(A) : convierte a carácter Char(c1,c2) crea una cadena completando la menor con espacios Deblank(c): elimina espacios en blanco al final Ischar(c) : detecta si una variable es cadena Isletter(c) : detecta si un carácter es una letra del alfabeto. Strcmp(c1,c2) : compara cadena Strcmpi(c1,c2) : no existe dif. Con mayusculas y minusculas Strncmp(c1,c2,n) : compara los n primeros caracteres S=[‘hola’,’ mundo’] : concadenación CAPITULO - 2 54
    • Findstr(c1,c2) :devuelve un vector con todas posiciones de las coincidencias. Strrep(c1,c2,c3) : reemplaza c3 por c2 en c1 int2Str(c) : convierte un número a cadena. Num2str(x,n): un numero real a cadena. Str2double(str) : convierte una cadena a numero real. Vc=cellstr(cc) : cadena a vector celda eliminando espacios en blanco. CAPITULO - 2 55
    • Gui - prediseñados choice = menu(‘Menu','uno','dos','tres') msgbox(‘Mensaje’,’Titulo’,’Icono’,’non-modal’) Icono : error , help, warn, personal Leccion… CAPITULO - 2 56