La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

REFERENCIA DE MATLAB 1/58.

Presentaciones similares


Presentación del tema: "REFERENCIA DE MATLAB 1/58."— Transcripción de la presentación:

1 REFERENCIA DE MATLAB 1/58

2 INSTRUCCIONES 2/58

3 ARRAYS 3/58

4 ARRAYS x=[0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi] y=sin(x) x(3) % el tercer elemento de X x(1:5) % los 5 elementos de X y(3:-1:1) % los 3, 2 y 1 elementos de Y x(2:2:7) % los 2 4 y 6 elementos y([ ]) % los elementos de Y en el orden que se quiera x=(0:0.1:1)*pi % crea un array comenzando con 0 incrementa de 0.1 y termina en 1 4/58

5 BUCLE FOR 5/58

6 En cada iteración se asigna a x la próxima columna del array.
BUCLE FOR for x = array …ordenes… end Las ordenes entre las sentencia for y end se ejecutan una vez para cada columna en el array. En cada iteración se asigna a x la próxima columna del array. 6/58

7 BUCLE FOR for n = 1 : 10 x(n)=sin(n*pi/10); end
7/58

8 BUCLE FOR A = 1 : 2 : 10 for n = A n x(n)=sin(n*pi/10); end
% n tomó los valores : x= 8/58

9 Un bucle for no se puede terminar reasignando la variable de control
x(n)=sin(n*pi/10); n=10; end x= 9/58

10 BUCLE FOR Cualquier array MATLAB es valido en una bucle for
data=[ ; ]; data = for n = data x=n(1)-n(2); end x= -4 x= -7 x= 46 x= 1 10/58

11 BUCLE FOR Los bucles for se pueden anidar for n = 1:5 for m=5:-1:1
A(n,m)=n^2+m^2; end disp (n) 1 2 3 4 5 11/58

12 BUCLE FOR A= 12/58

13 BUCLE FOR Las bucles for se deben de evitar siempre que haya un método de un array equivalente. for n = 1 : 10 x(n)=sin(n*pi/10); end ES EQUIVALENTE A n=1:10; x=sin(n*pi/10); 13/58

14 BUCLE WHILE 14/58

15 BUCLE WHILE Las bucles while evalúan un conjunto de ordenes un numero infimito de veces. while expresion …ordenes … end Las ordenes se ejecutan mientras que los elementos en expresión son verdaderos. 15/58

16 BUCLE WHILE num=0; Sum=0; while num < 10 Sum=Sum + num; num=num+1;
end 16/58

17 ESTRUCTURA IF - ELSE 17/58

18 ESTRUCTURA IF - ELSE if expresion …ordenes… end
Las ordenes se evalúan si los elementos son verdaderos (distintos de cero) 18/58

19 ESTRUCTURA IF - ELSE manzanas=10; costo=manzanas*25;
if manzanas > % aplicar 20% de descuento costo=(1-20/100)*costo; end costo = 200 19/58

20 ESTRUCTURA IF - ELSE if expresion
% se ejecuta si expresion es verdadero else % se ejecuta si expresion es falso end 20/58

21 ESTRUCTURA IF - ELSE if expresion1
% se ejecuta si expresion1 es verdadera elseif expresion2 % se ejecuta si expresion2 es verdadera elseif expresion3 % se ejecuta si expresion3 es verdadera elseif expresion4 else % se ejecuta si ninguna expresion es verdadera end 21/58

22 ESTRUCTURA IF - ELSE if expresion1 % se ejecuta si expresion1 es verdadera elseif expresion2 % se ejecuta si expresion2 es verdadera elseif expresion3 % se ejecuta si expresion3 es verdadera elseif expresion4 else % se ejecuta si ninguna expresion es verdadera End Solo se evalúa la primera expresión verdadera encontrada. La instrucción else puede no aparecer … 22/58

23 ESTRUCTURA CASE 23/58

24 ESTRUCTURA CASE switch expresion case case_exp1 …ordenes
case {case_expr1, case_expr2, case_expr3,...} otherwise end 24/58

25 ESTRUCTURA CASE method = 'Bilinear'; switch lower(method)
case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') end Respuesta : Method is linear 25/58

26 INSTRUCCION BREAK 26/58

27 Termina la ejecución de los bloques if for while y case
INSTRUCCION BREAK break Termina la ejecución de los bloques if for while y case 27/58

28 INSTRUCCION BREAK method = 'Bilinear'; switch lower(method)
case {'linear','bilinear'} disp('Method is linear') a=28 if 1 break end b=13 case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') End a= 28 28/58

29 INSTRUCCION BREAK a=1:1:4 if 1 a(1) a(2) break a(3) a(4) end ans = 1
29/58

30 INSTRUCCION BREAK method = 'Bilinear'; switch lower(method)
case {'linear','bilinear'} disp('Method is linear') break disp('Method is NO linear') % se salta esta linea case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') end 30/58

31 FUNCIONES 31/58

32 FUNCIONES Una función debe de estar escrita en un archivo que lleva el nombre de la función. e.g. MYFUNCTION.M 32/58

33 FUNCIONES El archivo de la función (MYFUNCTION.M) debe de contener en el encabezado la descripción de la función con comentarios Archivo SUMAITV.m % HOLA MUNDO % MI PRIMERA FUNCTION % SUMAITV(x,y) % TOMA 2 ARRELOS Y LOS SUMA ELEMENTO A ELEMENTO % COPYRIGHT (c) SIMULACION 1 de 10: :00 Este texto se muestra como ayuda en línea en MATLAB cuando de escribe: Help ‘SUMAITV’ 33/58

34 function z = SUMAITV(x,y) z=x+y;
FUNCIONES Después del encabezado la descripción sigue el código MATLAM que implementa la función: Archivo SUMAITV.m function z = SUMAITV(x,y) z=x+y; 34/58

35 FUNCIONES Archivo SUMAITV.m
Cualquier archivo .M puede utilizar la función: Archivo SUMAITV.m function z = SUMAITV(x,y) z=x+y; 35/58

36 FUNCIONES Archivo SUMAITV.m function z = SUMAITV(x,y) z=x+y;
% HOLA MUNDO % MI PRIMERA FUNCTION % SUMAITV(x,y) % TOMA 2 ARRELOS Y LOS SUMA ELEMENTO A ELEMENTO % COPYRIGHT (c) SIMULACION 1 de 10: :00 % Si x = y % Si y = % regresa % z = function z = SUMAITV(x,y) z=x+y; Archivo M5.m x=(1:1:10) y=x z=SUMAITV(x,y) x = y = z = 36/58

37 EJEMPLOS 37/58

38 G1 x=linspace(0,2*pi,30); y=sin(x); z=x.*y; plot3(x,y,z); 38/58

39 G2 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,y,'+'); 39/58

40 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,'+',x,z,'+'); G3
40/58

41 G4 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(y,z); 41/58

42 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,2*y.*z,'--'); G5
42/58

43 G6 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,2*y.*z,'--');
grid 43/58

44 G7 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,2*y.*z,'--');
grid xlabel('Independent variable X'); 44/58

45 G8 x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
%grafica la funcion 2sin(teta)cos(teta)=sen(2Teta) plot(x,y,x,2*y.*z,'--'); grid xlabel('Independent variable X'); ylabel('Dependent variables'); 45/58

46 G9 x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
%grafica la funcion 2sin(teta)cos(teta)=sen(2Teta) plot(x,y,x,2*y.*z,'--'); grid xlabel('Independent variable X'); ylabel('Dependent variables'); title('2sin(teta)cos(teta)=sen(2Teta)') 46/58

47 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot3(y,z,x); grid; G10
47/58

48 G11 x=-7.5:.5:7.5; y=x; [X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps; % distancia al origen Z=sin(R)./R; % calcula sin(r)/r mesh(X,Y,Z); 48/58

49 G15 x=-7.5:.5:7.5; y=x; [X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps; % distancia al origen Z=sin(R)./R; % calcula sin(r)/r mesh(X,Y,Z); surf(X,Y,Z); mesh(peaks); % title('mesh plot of the Peaks function'); 49/58

50 G17 x=-7.5:.5:7.5; y=x; [X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps; % distancia al origen Z=sin(R)./R; % calcula sin(r)/r mesh(X,Y,Z); surf(X,Y,Z); mesh(peaks); % title('mesh plot of the Peaks function'); [x,y,z]=peaks; contour(x,y,z,20); % genera 20 contornos 2D contour3(x,y,z,20); % la misma grafica de contornos en 3D axis([ ]) % ajusta la escala 50/58

51 G18 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); a=2*sin(x).*cos(x);
b=sin(x)./(cos(x)+eps); subplot(2,2,1); % selecciona la subgrafica superior izquierda plot(x,y),axis([0 2*pi -1 1]),title('sin(x)'); subplot(2,2,2); % seleciona la subgrafica superior derecha plot(x,z),axis([0 2*pi -1 1]),title('cos(x)'); subplot(2,2,3); % seleciona la subgrafica inferior izquierda plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)'); subplot(2,2,4); % seleciona la subgrafica inferior derecha plot(x,b),axis([0 2*pi ]),title('sin(x)/cos(x)'); %subplot(1,1,1); % regresa al modo de grafica de una sola ventana 51/58

52 G19 M=peaks(25); plot(M); title('Peaks Plot for ZOOM'); zoom on; 52/58

53 G20 t=0:.01:2*pi; r=sin(2*t).*cos(2*t); polar(t,r);
title('Polar Plot of sin(2t)cos(2t)'); 53/58

54 G21 x=-2.9:0.2:2.9; y=exp(-x.*x); bar(x,y);
title('Bar chart of a Bell Curve'); 54/58

55 G22 x=-2.9:0.2:2.9; y=exp(-x.*x); stairs(x,y);
title('Stair chart of a Bell Curve'); 55/58

56 G23 t=rand(1000,1)*pi; rose(t);
title('Angle Histogram of Random Angles'); 56/58

57 G24 x=linspace(-2*pi,2*pi,60); y=sin(x).^2./(x+eps); plot(x,y);
title('Plot of sin(x)^2/x'); [a,b]=ginput(8); % captura 8 puntos hold on; plot(a,b,'co'); % representa los puntos capturados hold off; 57/58

58 G25 colormap(gray); surfl(peaks),shading interp
title('Surf plot of Peaks With Default Lighting'); 58/58


Descargar ppt "REFERENCIA DE MATLAB 1/58."

Presentaciones similares


Anuncios Google