08.11.2014 Views

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

SHOW MORE
SHOW LESS

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):

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!