Professional Documents
Culture Documents
Funciones en MATLAB
Una cualidad de MATLAB es la de permitir generar nuestras
propias funciones para un problema especfico que queramos
resolver.
De esta forma ampliamos la potencia de MATLAB ya que estas
nuevas funciones adaptadas a nuestras necesidades se
pueden utilizar del mismo modo que las que ya tiene MATLAB
predefinidas, como son por ejemplo, det, size, sum, ...
Creando funciones
De esta forma se abre una nueva ventana en la que podemos
teclear la declaracin de funcin.
Observaciones
Se define el nombre y las variables de entrada y salida:
function c = myfile(a, b)
Las lneas de comentario se inician con el caracter %.
Las lneas de comentario posteriores a la funcin son de
ayuda
function c = myfile(a, b)
% Output: c. Input: a y b
Tipos de variables
Clase
Ejemplo
Descripcin
array
char
hola
cell
struct
object
tf(1, [1,1])
Variables de entrada-salida
Libertad en su nmero. La variable nargin y nargout indican su
nmero
Variables locales por defecto sin tipo determinado
Ejemplo: a, b, y c pueden ser double or array
function c = myfile2(a, b, c)
%MYFILE2 Ejemplo 2 de funcion
%
Output: c . Input: a, b y c
if nargin < 2
error('c = myfile2(a, b, [c])');
elseif nargin == 2
c = sqrt(a.^2 + b.^2);
else
c = sqrt(a.^2 + b.^2 + c.^2);
end
Ms ejemplos de funciones en
MATLAB
Supongamos que para una matriz dada necesitamos saber
cul es su diagonal recorrida de abajo hacia arriba.
Vamos a crear una funcin, llamada diagonal, que admita
como argumento de entrada una matriz y devuelva un vector
que contenga la informacin buscada.
Para ello utilizamos el editor de MATLAB para crear un m
fichero con las siguientes rdenes
diagonal.m
diagonal.m (cont.)
Ejecutar las siguientes instrucciones en el
prompt del Command Window de MATLAB:
Otro ejemplo
Aunque en este sencillo ejemplo se tienen un
solo argumento de entrada y un solo
argumento de salida, en general, se pueden
tener o no varios argumentos de entrada
como de salida.
mifuncion.m
Ahora ser empleada.
Ejemplo: mifuncion_p.m
function [f, promedio] = mifuncion_p(x, y)
%MIFUNCION_P.m version vectorizada de
mifuncion.m
%
Retorna el valor f de evaluar la expresion
%
f = y.*(1-y) + x, y ademas de su promedio
%
dados los valores x e y
f = y.*(1-y) + x;
promedio = sum(f)/length(x);
return
% opcional
mifuncion_p.m (cont.)
>> valor = mifuncion_p([0 3 4], [1 2 1])
valor =
0
1
4
>> [valor media] = mifuncion_p([0 3 4], [1 2 1])
valor =
0
1
4
media =
1.6667
>>
Indicaciones generales
Variables Globales
Ejemplo. Construir y guardar la siguiente funcin,
completamente trivial. La instruccin a=4 no hace nada
relevante, ya que realiza una asignacin interna que no se
exporta.
Subfunciones
Varias funciones contenidas en un mismo fichero.
La funcin principal es la primera. Equivalente a la funcin
main del lenguaje C.
function c = myfile_sub(a, b)
%MYFILE_SUB.M Ejemplo de subfunciones
%
Output: c. Input: a y b
c = fun(a, b);
function z = fun(x, y)
z = sqrt(x.^2 + y.^2);
Entrada de Datos
input(): Introduccin de datos INscript.m,
n = input('Intr. dato: ') ; % Double.
n = input('Intr. dato: ', 's') ;
% Cadena de caracteres.
ginput(): Localizar puntos en una grfica con el ratn,
figure; plot(1:1000);
[x,y]= ginput(1) % localizar un punto x,y
en grafica.
[x,y,tecla] = ginput(3) % tecla de la
tecla del ratn usada
Consulte el uso de dataimport
Salida de Datos
save: Grabar datos en ficheros OUTscript.
-mat: Cdigo binario (por defecto)
-ascii: Cdigo ASCII
-append: Graba al final del fichero
Salida de Datos
save: Grabar datos en ficheros OUTscript.
-mat: Cdigo binario (por defecto)
-ascii: Cdigo ASCII
-append: Graba al final del fichero