Matemática D - SciLab Funciones Funciones function [salidas]=nombre(entradas) //Se desarrolla la función de manera que se puedan // calcular todas las salidas a partir de los valores // de entrada. endfunction ● Sintaxis de función con valor de retorno: function variable_retornada = nombre_funcion (lista_argumentos) cuerpo_de_función endfunction Se pueden retornar más de una variable e inclusive un vector o matriz: function [var1,var2,vector,matriz] = nombre_funcion(lista_argumentos) cuerpo_de_función endfunction Sintaxis de función sin valor de retorno function nombre_funcion (lista_argumentos o vacio) cuerpo_de_función endfunction ● Ejemplo 1: Función que retorna la suma de dos números ● function s=suma(a,b) s=a+b; ● ● ● endfunction Ejemplo 2: Función que muestra un menú, no recibe argumentos y no retorna valores. function menu() disp('Opcion1') disp('Opcion2') disp('Opcion3') ● endfunction Ejemplo 3: Función que retorna el promedio de los elementos de un vector function [media]=media_aritmetica(x) //Calcula la media aritmetica del vector ingresado nelementos=length(x) suma=0 for i=1:nelementos suma=suma+x(i) end media=suma/nelementos endfunction x=1:2:10 Prom_x=media_aritmetica(x) disp(Prom_x,'Promedio de los valores de x=') z=abs(sin(0:%pi/20:2*%pi)) Prom_z=media_aritmetica(z) disp(Prom_z,'Promedio de los valores de z=') Funciones f x x 2 cos x function y=f1(x) //funcion de ejemplo y=x.^2-cos(x); endfunction //ejemplo que llama a la f1 clc clear xdel(winsid()) z=[-10:0.1:10] g=f1(z) plot(z,g,'r') Funciones function g=f2(z) //funcion de ejemplo f x if z < 0 g=-sqrt(-z); else g=sqrt(z); Función pensada para z escalar end Endfunction // ejemplo que llama a la f2 x=[-10:0.1:10] f=zeros(size(x)) for i=1:length(x) f(i)=f2(x(i)) end plot(x,f,'r') x x0 x x0 Funciones x f x x function g=f2(z) //funcion de ejemplo nele_z=length(z) g=zeros(size(z)) Función pensada para z vector for i=1:nele_z if z < 0 g(i)=-sqrt(-z(i)) else g(i)=sqrt(z(i)) end end endfunction //ejemplo que llama a la f2 x=[-10:0.1:10] plot(x,f2(x),'r') x0 x0 Función para multiplicar matrices 3 1 7 2 4 8 0 4 6 2 1 6 41 1 2 5 7 6 7 3 8 4 1 3 6 Pij 3 A p 1 ip B pj Función para multiplicar matrices A=[1 7 3 1 B=[3 4 6 2 6 8 3 1 8 2 5 7 4 6]; 7 2 0 4 1 6]; [m p]=size(A) [q n]=size(B) for i=1:m for k=1:n suma=0; for j=1:p suma=suma + A(i,j)*B(j,k) end P(i,k)=suma end end Función para multiplicar matrices function P=Pmatriz(A,B) [m p]=size(A); [q n]=size(B); if p==q for i=1:m for k=1:n suma=0; for j=1:p suma=suma + A(i,j)*B(j,k); end P(i,k)=suma; end end else disp('las dimensiones no son correctas'); end endfunction