Aprenda Matlab 6.1 - Universidad Politécnica de Madrid
Aprenda Matlab 6.1 - Universidad Politécnica de Madrid
Aprenda Matlab 6.1 - Universidad Politécnica de Madrid
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capítulo 6: Programación <strong>de</strong> MATLAB página 71<br />
>> info.methods<br />
ans =<br />
inline: 'c:\matlabr12\toolbox\matlab\funfun\@inline\disp'<br />
serial: 'c:\matlabr12\toolbox\matlab\iofun\@serial\disp'<br />
En este caso concreto se ha consi<strong>de</strong>rado la función disp, que permite mostrar los elementos <strong>de</strong><br />
vectores y matrices. El valor <strong>de</strong> retorno <strong>de</strong> la función functions es una estructura con los cuatro<br />
campos siguientes:<br />
function<br />
type<br />
file<br />
methods<br />
ca<strong>de</strong>na <strong>de</strong> caracteres con el nombre <strong>de</strong> la función a la que correspon<strong>de</strong> la<br />
referencia<br />
Ca<strong>de</strong>na <strong>de</strong> caracteres con uno <strong>de</strong> los siguientes valores: 'simple',<br />
'subfunction', 'private', 'constructor' y 'overloa<strong>de</strong>d'.<br />
Ca<strong>de</strong>na <strong>de</strong> caracteres que contiene el nombre <strong>de</strong>l fichero *.m en el que está<br />
<strong>de</strong>finida la función o bien el texto 'MATLAB built-in function'.<br />
Estructura que contiene los paths <strong>de</strong> los ficheros *.m en los que están<br />
<strong>de</strong>finidas las funciones sobrecargadas que se correspon<strong>de</strong>n con esta<br />
referencia.<br />
El argumento <strong>de</strong> la función functions <strong>de</strong>be ser una referencia <strong>de</strong> función escalar (no pue<strong>de</strong><br />
ser un array <strong>de</strong> referencias <strong>de</strong> función).<br />
Los distintos valores <strong>de</strong>l campo type tienen los siguientes significados:<br />
simple<br />
overloa<strong>de</strong>d<br />
constructor<br />
subfunction<br />
private<br />
Funciones intrínsecas no sobrecargadas.<br />
Funciones sobrecargadas. Son las únicas que tienen campo methods.<br />
Constructores relacionados con clases y objetos.<br />
Funciones <strong>de</strong>finidas en un fichero *.m <strong>de</strong> otra función.<br />
Funciones privadas (<strong>de</strong>finidas en un subdirectorio private).<br />
Las funciones sobrecargadas (overloa<strong>de</strong>d) tienen un interés especial, pues son las únicas que<br />
tienen el campo methods y las que pue<strong>de</strong>n dar origen a más dificulta<strong>de</strong>s o problemas. De modo<br />
análogo a otros lenguajes <strong>de</strong> programación como C/C++ y Java, las funciones sobrecargadas <strong>de</strong><br />
MATLAB son funciones que tienen el mismo nombre, pero distintos tipos <strong>de</strong> argumentos y distinto<br />
código (en otras palabras, funciones diferentes que sólo coinci<strong>de</strong>n en el nombre).<br />
Las funciones <strong>de</strong>fault son las que no tienen argumentos especializados. Otras funciones<br />
esperan recibir un argumento <strong>de</strong> un tipo más concreto. Salvo que haya una función especializada<br />
cuyos argumentos coincidan con los tipos <strong>de</strong> la llamada, MATLAB utilizará la función <strong>de</strong>fault.<br />
6.4.4. OTROS ASPECTOS DE LAS REFERENCIAS DE FUNCIÓN<br />
De la misma manera que una ca<strong>de</strong>na <strong>de</strong> caracteres pu<strong>de</strong> ser convertida en una referencia <strong>de</strong> función<br />
por medio <strong>de</strong> la función str2func, MATLAB dispone <strong>de</strong> la función func2str que realiza la<br />
conversión inversa. Pue<strong>de</strong> ser interesante convertir una referencia <strong>de</strong> función en ca<strong>de</strong>na <strong>de</strong><br />
caracteres para construir mensajes <strong>de</strong> error en relación con construcciones try...catch.<br />
Otras funciones que pue<strong>de</strong>n utilizarse en relación con las referencias <strong>de</strong> función son las<br />
siguientes (se presentas mediante ejemplos):