370 likes | 560 Views
Profesor Hermann Pempelfort. Octave 2. Punto y coma. Permite que no se muestre por pantalla la acción o resultado ejecutado. Ejemplo1: x = 3 Ejemplo2: x = 3; Ejemplo3: x = linspace (2,100) Ejemplo4: x = linspace (2,100);. Archivos .m.
E N D
Profesor Hermann Pempelfort Octave 2
Punto y coma • Permite que no se muestre por pantalla la acción o resultado ejecutado. • Ejemplo1: x = 3 • Ejemplo2: x = 3; • Ejemplo3: x = linspace(2,100) • Ejemplo4: x = linspace(2,100);
Archivos .m • Los archivos .m son utilizados en Matlab y Octave para guardar: • Matrices de información, • Funciones, • Sonido, • Video, • Otros.
Como crear un archivo. Para funciones.
Nuevo archivo .m Function: Nombre de la función. Author: El autor. Inputs: Variables de entrada. Outputs: Respuesta, Retorno o Resolución. Description: Explicar que hace. Example: Un ejemplo de cómo usarlo. Result : Un ejemplo de un resultado. SeeAlso: Ver también con:
Funciones function respuesta = funcion( x , y ) respuesta = Acción/Cálculo/Definición ; endfunction
Funciones ejercicios. • Haga una función que retorne la multiplicación entre dos variables.
Funciones ejercicios. Function respuesta = multiplicar(x,y) respuesta = x * y; endfunction
Funciones function respuesta = promedio( x ) respuesta = sum(x) / length(x); endfunction
Sentencia IF • Sentencia Sí y Síno. • Si. if ( condición ) //Algoritmo si se cumple la condición. endif • Si-Sino if ( condición ) //Si se cumple la condición. Else //Si no se cumple la condición. endif
Funciones function respuesta = promedio( x ) if (is_vector(x)) respuesta = sum(x) / length(x); endif endfunction
Funciones function respuesta = promedio( x ) if (is_vector(x)) respuesta = sum(x) / length(x); else error (“Ha ocurrido un error con el vector”); endif endfunction
Funciones • Se pueden retornar desde 0 a N argumentos. • 0: function nombre() • 1: function res = nombre() • 2: function [res1, res2] = nombre() • 3: function [res1, res2, res3 ] = nombre() • N: functionvarargout= nombre()
Funciones ejemplos • Para una función con n respuestas, se utiliza una variable de entorno pre-definida. • Por ejemplo: functionvarargout = funcion () for i = 1:nargout varargout{i} = i; endfor endfunction
Funciones function[res1, res2] = promedio( x ) if (is_vector(x)) res1 = sum(x) / length(x); res2 = length(x); else error (“Ha ocurrido un error con el vector”); endif endfunction
Funciones • x = [1 2 3 4 5 6] • [promedio,tamano] = promedio ( x )
Sentencias repetitivas • Desde hasta: for i = 0; 10 //Algoritmo repetitivo endfor
Sentencias repetitivas • Mientras While ( condición ) //Algoritmo repetitivo Endwhile
Funciones function[avg, size, max] = promedio( x ) if (is_vector(x)) res1 = sum(x) / length(x); res2 = length(x); else error (“Ha ocurrido un error con el vector”); endif max = x(1); for i = 2; length(x) if (x ( i ) > max) max = x ( i ); endif endfor endfunction
Funciones ejercicios • Haga una función que me retorne el máximo y el mínimo de un vector.
Funciones ejercicios • Function [max, min] = funcion(x) max = x (1) ; min = x (1) ; for i = 2;length(x) if (x ( i ) > max ) max = x (i) endif if (x ( i ) < min ) min = x (i) endif endfor • endfunction
Mostrar por pantalla. Para mostrar por pantalla resultados, cálculos u otro, hay dos formas. • Con disp( ) : • Despliega un mensaje o una variable. • Con printf() : • Despliega un mensaje con contenido dinámico, es decir, depende de una o más variables.
Mostrar por pantalla • Ejemplos: • disp(“Hola mundo”); • disp(3); • disp(variable) • printf(“Hola mundo”) • printf(“3”); • Printf(“%d”,variable) Si es entero • Printf(“%f”,variable) Si es fracción • Printf(“%s”,variable) Si es String • Printf(“Hola mundo, somos %d personas vivas”,variable)
Funciones • Es posible que no sepamos cuantos argumentos se utilizarán en la función. • Para esto declaramos con puntos suspensivos como argumentos.
Funciones ejemplo functionprint_arguments (varargin) for i = 1:length (varargin) printf ("Argumento %d: ", i); disp (varargin{i}); endfor endfunction
Funciones • Otra forma de retornar más de una información es utilizando la variable como matriz.
Función ejemplo function respuesta = funcion (x,y) respuesta(1) = x; respuesta(2) = y; respuesta(3) = x * y; endfunction
Funciones diferenciables • Si necesitamosescribirunaecuacióncomoesta: dx/dt=f(x(t),t). • lsode (‘nombreFuncion’,x(t),t) • Si necesitamosescribirunaecuacióncomoesta: dx/dt=g(t,x). • rk4(‘nombreFuncion’,t,x)
Funciones diferenciables functionret=f(x,t) ret=x^2; endfunction
Funciones diferenciables t=(0:0.1:1)'; x=lsode(‘f’,0.5,t); plot (t,x)
Funciones diferenciales functionret=g(t,x) ret=x^2; endfunction
Funciones diferenciales • [t,x]=rk4('g',[0,1],0.5); • plot (t,x) • Se necesita rk4.m
Función gráfica ejemplo. functionxdot=funcion(x,t) a=10;b=28;c=8/3; xdot(1,1)=a*(x(2)-x(1)); xdot(2,1)=x(1)*(b-x(3))-x(2); xdot(3,1)=x(1)*x(2)-c*x(3); endfunction
Función gráfica ejemplo. x0=[1;1;1];t=linspace(0,50,5000);x=lsode( "funcion",x0,t);plot3(x(:,1),x(:,2),x(:,3))