Professional Documents
Culture Documents
Primer semestre
Indexacin (Repaso)
Temario
Funciones y Scripts (M-files) Programacin
Programacin
Diagrama flujo Esquema grfico de lo que se desea hacer Ayuda a comprender su evolucin
Funciones y scripts
Ficheros de formato matlab para crear un New M-files programa (MATLAB)
Programacin
Funciones
Un funcin, .m o M-file, es un fichero de texto que agrupa un conjunto de instrucciones Matlab/octave interpreta las instrucciones del fichero en secuencia. Para ejecutar o correr una funcin simplemente hay que escribir su nombre en la ventana de comandos Acepta parmetros o variables de entrada y salida Opera internamente con sus propias variables
Programacin
Funciones
Variable de entrada: toma y reconoce los valores numricos asignados a esa variable en la ventana de comandos, trabajando con ellos salvo que internamente dentro de la funcin se modifiquen. Variable de salida: transfieren informacin que tienen dentro de la funcin al workspace de Matlab.
Funcin suma.m >> sum=suma(3,4) sum=7
Ejemplo de funciones .m
Crea una funcin llamada sistema.m que resuelva el sistema de ecuaciones x +5y-8z =1 2x+3y + z = 2 x+2y+3z = 4 considerando a la matriz A y el vector b variables de entrada y al vector solucin x variable de salida. Funcin sistema.m function [x]=sistema(A,b) x=A\b; x+ 3y+6z 8x+ 9y+ z 3x+10y+9z =1 =3 =4 >> A=[1 5 -8;2 3 1;1 2 3]; >> b=[1;2;4]; >> [x]=sistema(A,b) >> C=[1 3 6;8 9 1;3 10 9]; >> d=[1;3;4]; >> [y]=sistema(C,d)
Programacin
Scripts
Coleccin de sentencias que se ejecutan de forma secuencial escritas en un fichero Utiliza las variables del entorno de Matlab
Script suma.m
sum=a+b;
Ejemplo de scripts
Crea un script llamado sistema_script.m que resuelva el sistema de ecuaciones x +5y-8z =1 2x+3y + z = 2 x+2y+3z = 4
>> A=[1 5 -8;2 3 1;1 2 3]; >> b=[1;2;4]; >> sistema_script >> C=[1 3 6;8 9 1;3 10 9]; >> d=[1;3;4]; >> sistema_script
=1 =3 =4
Programacin
Diferencia scripts-funciones
Scripts
NO tienen parmetros de entrada ni salida Variables definidas tienen mbito global
Funciones
Tienen parmetros de entrada y salida Variables definidas tienen mbito local
Programacin
Ejemplo diferencia funcin/script
parmetros de entrada y salida
Funcin
function sum=suma(a,b) sum=a+b;
Script
suma.m
sum=a+b; >> a=3; b=4; >> suma; >> sum
sum = 7
Programacin
Bucles for/while
>> a=3; >> while a < 5, disp ('a es menor que 5 ya que vale') disp (a) a = a + 1; end
Programacin (ejemplos)
Ejecuta el siguiente ejemplo de FOR que permite estimar
i
i=1
>> serie=0; n=10; >>for i=1:n serie=serie+i*i; end
Programacin (ejemplos)
Ejecuta el siguiente ejemplo de FOR que permite estimar el factorial de un nmero N
>>N=4; >> fact=1; >> for i=1:N fact=fact*i; end Funcin factorial.m function [fact]=factorial(N) fact=1; for i=1:N fact=fact*i; end >>[factor]=factorial(4)
Programacin (ejemplos)
Realiza lo mismo pero con un bucle WHILE
>>clear all >>i=1; >>fact=1; >> while (i<4) i=i+1; fact=fact*i; end >> fact
Nota: Hay que modificar manualmente el contador, puesto que al revs que el bucle for, el bucle while no gestiona ningn contador
Programacin
Operadores condicionales
Operador < <= > >= == ~= Significado Menor que Menor o igual Mayor que Mayor o igual Igual que Distinto que Operador & | Significado y o no
Operadores lgicos
Y adems
xor (x,y) operacin o exclusiva, any (x) algn? all (x) todos?
Programacin
Sentencia if
Programacin (ejemplos)
Crea una funcin triang.m que determine si se puede formar un tringulo equiltero a partir de los valores de sus 3 lados function result=triang(a,b,c) % Nos indica si con las variables de entrada %a,b,c se puede formar un tringulo equiltero % Ordenamos los lados de menor a mayor x=sort([a,b,c]); if x(3)==x(2) & x(3)==x(1) result='Equilatero'; else result='No es equilatero'; end