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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 68<br />

>> persistent VELOCIDAD TIEMPO<br />

Las variables persistent se inicializan a la matriz vacía [] y permanecen en memoria hasta que<br />

se hace clear <strong>de</strong> la función o cuando se modifica el fichero-M. Para evitar que un fichero-M se<br />

modifique se pue<strong>de</strong> utilizar el comando mlock file.m, que impi<strong>de</strong> la modificación <strong>de</strong>l fichero. El<br />

comando munlock <strong>de</strong>sbloquea el fichero mientras que la función mislocked permite saber si está<br />

bloqueado o no.<br />

6.3.11. VARIABLES GLOBALES<br />

Las variables globales son visibles en todas las funciones (y en el espacio <strong>de</strong> trabajo base o general)<br />

que las <strong>de</strong>claran como tales. Dichas variables <strong>de</strong> <strong>de</strong>claran precedidas por la palabra global y<br />

separadas por blancos, en la forma:<br />

global VARIABLE1 VARIABLE2<br />

Como ya se ha apuntado, estas variables sólo son visibles en los espacios <strong>de</strong> trabajo <strong>de</strong> las<br />

funciones que las <strong>de</strong>claran como tales (y en el propio espacio <strong>de</strong> trabajo base, si también ahí han<br />

sido <strong>de</strong>claradas como globales). Ya se ha dicho también que se suele recurrir al criterio <strong>de</strong> utilizar<br />

nombres largos y con mayúsculas, para distinguirlas fácilmente <strong>de</strong> las <strong>de</strong>más variables.<br />

6.4. Referencias <strong>de</strong> función (function handles)<br />

Las referencias <strong>de</strong> función (function handles) constituyen un nuevo mecanismo pera referirse a un<br />

nombre <strong>de</strong> función, introducido en MATLAB 6.0. En versiones anteriores la única forma <strong>de</strong><br />

referirse a una función era por medio <strong>de</strong>l nombre. Téngase en cuenta que MATLAB, al igual que<br />

otros lenguajes <strong>de</strong> programación como C/C++ y Java, admite funciones sobrecargadas (overloa<strong>de</strong>d<br />

functions), esto es, funciones diferentes que tienen el mismo nombre pero se diferencian entre sí por<br />

el número y tipo <strong>de</strong> los argumentos. Cuando un programa llama a una función sobrecargada,<br />

MATLAB analiza los tipos <strong>de</strong> los argumentos incluidos en la llamada y llama a la función que<br />

mejor se adapta a esos tipos <strong>de</strong> argumentos. Las referencias <strong>de</strong> función permiten al programador un<br />

mayor control sobre la función que es efectivamente llamada y tienen algunas otras ventajas que se<br />

verán en este apartado y en sus sub-apartados.<br />

El principal uso <strong>de</strong> las referencias <strong>de</strong> función (como <strong>de</strong> los nombres <strong>de</strong> función en versiones<br />

anteriores) es el pasar a una función el nombre <strong>de</strong> otra función, junto con sus argumentos, para que<br />

la pueda ejecutar. A estas funciones que ejecutan otras funciones que se les pasan como argumentos<br />

se les llama funciones <strong>de</strong> función, y se analizan con más <strong>de</strong>talle en el Apartado 6.9, a partir <strong>de</strong> la<br />

página 76. Por ejemplo, MATLAB dispone <strong>de</strong> una función llamada quad que calcula la integral<br />

<strong>de</strong>finida <strong>de</strong> una función entre unos límites dados. La función quad es genérica, esto es calcula,<br />

mediante métodos numéricos, integrales <strong>de</strong>finidas <strong>de</strong> una amplia variedad <strong>de</strong> funciones, pero para<br />

que pueda calcular dicha integral hay que proporcionarle la función a integrar. Por ejemplo, para<br />

calcular la integral entre 0 y p <strong>de</strong> la función seno(x) se pue<strong>de</strong> utilizar la sentencia:<br />

>> area=quad('sin',0,pi)<br />

area =<br />

2.0000<br />

La función quad ejecuta la función sin por medio <strong>de</strong> la función feval, que tiene la siguiente<br />

forma general:<br />

feval(funcname, arg1, arg2, arg3, ...)<br />

don<strong>de</strong> funcname es una ca<strong>de</strong>na <strong>de</strong> caracteres con el nombre <strong>de</strong> la función a evaluar, y arg1, arg2,<br />

arg3, ... son los argumentos que se le pasan a feval para que se los pueda pasar a funcname.

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

Saved successfully!

Ooh no, something went wrong!