La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Guilmer González Programación en Matlab Lectura 2.

Presentaciones similares


Presentación del tema: "Guilmer González Programación en Matlab Lectura 2."— Transcripción de la presentación:

1 Guilmer González Programación en Matlab Lectura 2

2 2 Programación en Matlab En ésta ocasión veremos: Sobre el entorno de programación de Matlab El path de búsqueda de archivos Los m-file como scripts y como funciones Control de flujo (Estructuras de control) Función de funciones

3 3 Programación en Matlab Sobre el entorno de programación Cómo indicar el directorio de trabajo >> dir >> cd mis_archivos >> pwd Los directorios de matlab definen dónde se encuentran los archivos en que Matlab buscará los m-files >> path >> addpath >> pathtool >> which linspace C:\MATLABR11\toolbox\matlab\elmat\linspace.m

4 4 Programación en Matlab Sobre el entorno de trabajo Los m-files son localizados en el directorio actual de trabajo o bien en los directorios del path de matlab. Una función o variable al ser llamada desde el entorno solicita a Matlab su búsqueda en la secuencia: 1.Si es una variable del espacio de trabajo 2.La considera una variable predefinida 3.La considera un m-file de Matlab 4.La trata de localizar como m-file en el directorio de uso 5. La trata de localizar como m-file en el path de Matlab

5 5 Programación en Matlab Sobre el lenguaje de programación Los archivos de ejecución script-files son archivos de texto que contienen líneas que pudieron ser tecleadas desde el entorno de Matlab: % Factorial n!=1*2*...*n y = prod(1:n), Para ejecutarlo teclee >> fact Para observar el archivo, su conjunto de intrucciones teclee >> type fact fact.m

6 6 Programación en Matlab Sobre la programación en Matlab Las funciones en los m-files cuentan con variables locales y siempre inician con la intrucción function function y=fact(n) % function y=fact(n) %Y=FACT(N) Calcula el factorial de n % n!=1*2*...*n y = prod(1:n); Para ejecutarlo teclee >> sol=fact(5) fact.m

7 7 Programación en Matlab Sobre la programación en Matlab OJO: Es importante documentar los archivos de Matlab >> sol=fact(6); >> sol=feval(fact,3) feval evalua una función pre-definida >> help feval

8 8 Programación en Matlab Control de flujo - selección La instrucción if-elseif-else if ( ) ; elseif ( ) ; else ( ) ; end

9 9 Programación en Matlab Control de flujo - selección Operadores relacionales: ==, ~=, >, <, Operadores lógicos: & (and), | (or), ~ (not) Pruebas lógicas: isempty, any, all if isempty(who) disp(No hay elementos); else whos end

10 10 Programación en Matlab Control de flujo - selección Chequeo de datos, un ejemplo más elaborados function y=fact(n) % y=fact(n) calcula el factorial de n. % if nargin < 1 error(No hay entrada alguna) elseif n < 0 error(el número debe ser no negativo) elseif abs(n-round(n)) > eps error(el numero debe ser un entero) end y = prod(1:n); fact.m

11 11 Programación en Matlab Control de flujo – repetición for-loops for k= ; end Los comandos son ejecutados repetidamente y en cada una de ellas la variable k toma un valor del loop-vector

12 12 Programación en Matlab Control de flujo - repetición Ejemplo: desplegar una tabla de factoriales for k=1:12, disp([num2str(k),´ ´,... num2str(prod(1:k))]); end

13 13 Programación en Matlab Control de flujo - repetición Cambiando fact.m function y=fact(n) % y=fact(n) % calcula el Factorial n!=1*2*...*n y=1; for k=2:n, y = y*n; end

14 14 Programación en Matlab Repetición: animación del logo Construir un archivo m-file que presente el logo de Matlab y lo mueva frame por frame, luego mueva el logo. logo dtheta = 10; for k = 1:360/dtheta, M(k) = getframe(gcf); camorbit(dtheta,0); end logomovie.m

15 15 Programación en Matlab Animación del logo >> movie(gcf,M)

16 16 Programación en Matlab Control de flujo – Condicional de ejecución while-loops while ( ) ; end El cuerpo del loop es ejecutado mientras que la intrucción condicional sea cierta.

17 17 Programación en Matlab Control de flujo – Condicional de ejecución Cuál es el factorial más grande que Matlab puede calcular? Compare las implementaciones: k=1; While prod(1:k)~=Inf, k=k+1; end k for k=1:100000; if prod(1:k)==Inf, k, return, end end

18 18 Programación en Matlab Ejercicio Implemente el método de newton Para resolver

19 19 Programación en Matlab Resumen El usuario puede crear m-files y usarlos al añadirlos al path de Matlab o estar sobre el directorio de trabajo Las funciones trabajan con variables locales, mientras que los scripts operan sobre las variables del espacio de trabajo Se cuentan con estructuras de control típicos: is if-else-end, for-loops y while- loops El propósito de las funciones es que sean argumentos de otras funciones


Descargar ppt "Guilmer González Programación en Matlab Lectura 2."

Presentaciones similares


Anuncios Google