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.

Capítulo 6: Programación <strong>de</strong> MATLAB página 63<br />

variables que crea pertenecen al espacio <strong>de</strong> trabajo base <strong>de</strong> MATLAB (recordar Apartado 2.4.7), y<br />

permanecen en él cuando se termina la ejecución <strong>de</strong> dicho fichero.<br />

Las funciones permiten <strong>de</strong>finir funciones enteramente análogas a las <strong>de</strong> MATLAB, con su<br />

nombre, sus argumentos y sus valores <strong>de</strong> retorno. Los ficheros *.m que <strong>de</strong>finen funciones<br />

permiten exten<strong>de</strong>r las posibilida<strong>de</strong>s <strong>de</strong> MATLAB; <strong>de</strong> hecho existen bibliotecas <strong>de</strong> ficheros *.m que<br />

se ven<strong>de</strong>n (toolkits) o se distribuyen gratuitamente (a través <strong>de</strong> Internet). Las funciones <strong>de</strong>finidas en<br />

ficheros *.m se caracterizan porque la primera línea (que no sea un comentario) comienza por la<br />

palabra function, seguida por los valores <strong>de</strong> retorno (entre corchetes [ ] y separados por comas, si<br />

hay más <strong>de</strong> uno), el signo igual (=) y el nombre <strong>de</strong> la función, seguido <strong>de</strong> los argumentos (entre<br />

paréntesis y separados por comas).<br />

Recuér<strong>de</strong>se que un fichero *.m pue<strong>de</strong> llamar a otros ficheros *.m, e incluso pue<strong>de</strong> llamarse a<br />

sí mismo <strong>de</strong> forma recursiva. Los ficheros <strong>de</strong> comandos se pue<strong>de</strong>n llamar también <strong>de</strong>s<strong>de</strong> funciones,<br />

en cuyo caso las variables que se crean pertenecen a espacio <strong>de</strong> trabajo <strong>de</strong> la función. El espacio <strong>de</strong><br />

trabajo <strong>de</strong> una función es in<strong>de</strong>pendiente <strong>de</strong>l espacio <strong>de</strong> trabajo base y <strong>de</strong>l espacio <strong>de</strong> trabajo <strong>de</strong> las<br />

<strong>de</strong>más funciones. Esto implica por ejemplo que no pue<strong>de</strong> haber colisiones entre nombres <strong>de</strong><br />

variables: aunque varias funciones tengan una variable llamada A, en realidad se trata <strong>de</strong> variables<br />

completamente distintas (a no ser que A haya sido <strong>de</strong>clarada como variable global).<br />

A continuación se verá con un poco más <strong>de</strong> <strong>de</strong>talle ambos tipos <strong>de</strong> ficheros *.m.<br />

6.3.1. FICHEROS DE COMANDOS (SCRIPTS)<br />

Como ya se ha dicho, los ficheros <strong>de</strong> comandos o scripts son ficheros con un nombre tal como<br />

file1.m que contienen una sucesión <strong>de</strong> comandos análoga a la que se teclearía en el uso interactivo<br />

<strong>de</strong>l programa. Dichos comandos se ejecutan sucesivamente cuando se teclea el nombre <strong>de</strong>l fichero<br />

que los contiene (sin la extensión), es <strong>de</strong>cir cuando se teclea file1 con el ejemplo consi<strong>de</strong>rado.<br />

Cuando se ejecuta <strong>de</strong>s<strong>de</strong> la línea <strong>de</strong> comandos, las variables creadas por file1 pertenecen al espacio<br />

<strong>de</strong> trabajo base <strong>de</strong> MATLAB. Por el contrario, si se ejecuta <strong>de</strong>s<strong>de</strong> una función, las variables que<br />

crea pertenecen al espacio <strong>de</strong> trabajo <strong>de</strong> la función (ver Apartado 2.4.7, en la página 13).<br />

En los ficheros <strong>de</strong> comandos conviene poner los puntos y coma (;) al final <strong>de</strong> cada sentencia,<br />

para evitar una salida <strong>de</strong> resultados <strong>de</strong>masiado cuantiosa. Un fichero *.m pue<strong>de</strong> llamar a otros<br />

ficheros *.m, e incluso se pue<strong>de</strong> llamar a sí mismo <strong>de</strong> modo recursivo. Sin embargo, no se pue<strong>de</strong><br />

hacer profile (ver Apartado <strong>6.1</strong>0, en la página 88) <strong>de</strong> un fichero <strong>de</strong> comandos: sólo se pue<strong>de</strong> hacer<br />

<strong>de</strong> las funciones.<br />

Las variables <strong>de</strong>finidas por los ficheros <strong>de</strong> comandos son variables <strong>de</strong>l espacio <strong>de</strong> trabajo<br />

<strong>de</strong>s<strong>de</strong> el que se ejecuta el fichero, esto es variables con el mismo carácter que las que se crean<br />

interactivamente en MATLAB si el fichero se ha ejecutado <strong>de</strong>s<strong>de</strong> la línea <strong>de</strong> comandos. Al terminar<br />

la ejecución <strong>de</strong>l script, dichas variables permanecen en memoria.<br />

El comando echo hace que se impriman los comandos que están en un script a medida que<br />

van siendo ejecutados. Este comando tiene varias formas:<br />

echo on<br />

echo off<br />

echo file on<br />

echo file off<br />

echo file<br />

echo on all<br />

echo off all<br />

activa el echo en todos los ficheros script<br />

<strong>de</strong>sactiva el echo<br />

don<strong>de</strong> 'file' es el nombre <strong>de</strong> un fichero <strong>de</strong> función, activa el echo en esa<br />

función<br />

<strong>de</strong>sactiva el echo en la función<br />

pasa <strong>de</strong> on a off y viceversa<br />

activa el echo en todas las funciones<br />

<strong>de</strong>sactiva el echo <strong>de</strong> todas las funciones

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

Saved successfully!

Ooh no, something went wrong!