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
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.