1 / 19

Programación en Matlab

Programación en Matlab. Lectura 2. 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. Sobre el entorno de programación.

Download Presentation

Programación en Matlab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programación en Matlab Lectura 2

  2. 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. 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. 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: • Si es una variable del espacio de trabajo • La considera una variable predefinida • La considera un m-file de Matlab • 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. 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: fact.m % Factorial n!=1*2*...*n y = prod(1:n), Para ejecutarlo teclee >> fact Para observar el archivo, su conjunto de intrucciones teclee >> type fact

  6. Sobre la programación en Matlab • Las funciones en los m-files cuentan con variables locales y siempre inician con la instrucción function fact.m 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)

  7. 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. Control de flujo - selección • La instrucción if-elseif-else if (<condición>) <instrucciones>; elseif (<condición>) <instrucciones>; else (<condición>) <instrucciones>; end

  9. 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. Control de flujo - selección • Chequeo de datos, un ejemplo más elaborados fact.m 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);

  11. Control de flujo – repetición • for-loops for k=<vector de valores> <asignaciones>; <instrucciones diversas>; end Los comandos son ejecutados repetidamente y en cada una de ellas la variable k toma un valor del loop-vector

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

  13. 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. 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. Animación del logo • >> movie(gcf,M)

  16. Control de flujo – Condicional de ejecución • while-loops while (<condición>) <intrucciones>; end El cuerpo del loop es ejecutado mientras que la intrucción condicional sea cierta.

  17. 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. Ejercicio • Implemente el método de newton • Para resolver

  19. 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

More Related