Ficheros Script

14

Click here to load reader

Transcript of Ficheros Script

Page 1: Ficheros Script

FICHEROS SCRIPT

Otra forma diferente de ejecutar comandos en MATLAB es crear un fichero con los comandos

para ejecutarlo posteriormente. Cuando se ejecuta el fichero en cuestión, los comandos que

contiene son ejecutados en el orden en que aparecen en el fichero.

Además, si fueran necesarias correcciones o cambios posteriores, sólo habría que editar el fichero

y ejecutarlo de nuevo. Los ficheros que se utilizan para este propósito en MATLAB se

denominan ficheros de procesamiento de comandos o ficheros script.

LOS FICHEROS SCRIPT

• Un fichero script es una secuencia de comandos MATLAB, también denominada programa.

• Cuando se ejecuta un fichero script, MATLAB ejecuta los comandos en el orden en que éstos

han sido escritos, igual que si se ejecutaran uno auno en la Ventana de Comandos.

• Cuando un fichero script contiene un comando que produce una salida o resultado (p. ej. una

asignación de variable sin un punto y coma al final), la salida se visualiza en la Ventana de

Comandos.

• La utilización de ficheros script es conveniente, ya que éstos pueden ser editados (es decir, se

pueden corregir o modificar), y se pueden ejecutar tantas veces como se quiera.

• Los ficheros script se pueden crear y editar en cualquier editor de texto. Asimismo el texto se

puede copiar y pegar desde estos editores a MATLAB para ser ejecutado.

• Los ficheros script también se denominan ficheros M, ya que la extensión .m es la que utiliza y

reconoce MATLAB cuando se guardan estos ficheros.

Page 2: Ficheros Script

MANIPULACIÓN DE FICHEROS SCRIPT

En MATLAB, los ficheros, script se crean y editan con la Ventana del Editor/Depurador. Para abrir

esta ventana hay que Ir al menú File (Fichero), se selecciona New (Nuevo) y después M-file

(Fichero M).

Después de esto se abrirá una ventana, como la que se muestra en la Figura 1.1, correspondiente

el editor y depurador de ficheros script de MATLAB.

Figura 1.1: La Ventana del Editor/Depurador directo

Una vez que se ha abierto la Ventana el Editor/Depurador de scnpts, los comandos se van

introduciendo línea por línea. MATLAB enumera automáticamente las líneas cada vez que se pulsa

la tecla Enter. Los comandos también se pueden escribir en cualquier editor o procesador de

textos y después trasladarse (copiar/pegar) al editor.

Page 3: Ficheros Script

COMANDO DE SALIDA

Matlab genera automáticamente la salida de la ejecución de algunos comandos. Por ejemplo

cuando a una variable se le asigna un valor, o cuando se teclea el nombre de una variable

anteriormente creada y se pulsa intro, Matlab visualiza el nombre de la variable y su valor

asignado

Los comandos de uso muy frecuente son: disp y fprintf

• El comando disp se utiliza para visualizar un texto o el contenido de una variable sin mostrar su

nombre.

El formato de este comando es:

disp(nombre de variable) o disp(‘Mensaje’)

• El comando fprintf se utiliza para visualizar salidas de programas (texto y datos) en la pantalla, o

bien almacenarlas en un fichero. Con este comando, y a diferencia de disp, la salida puede tener

un formato preestablecido. En este caso se pueden combinar texto y resultados numéricos

provenientes de cálculos o variables predefinidas en la misma línea. Además, el formato de

los números se puede controlar directamente.

Uso del comando fprintf para visualizar mensajes de texto:

fprintf('Mensaje en forma de cadena')

Nota Para cambiar de linea en un mensaje de texto se debe insertar el código \n.

Este código se le denomina código de escape.

Utilización del comando fprintf para visualizar datos y texto juntos:

Page 4: Ficheros Script

Para visualizar texto y datos (valores de variables) juntos, el comando fprintf debe utilizarse

siguiendo la sintaxis:

El flag o bandera, cuyo carácter es opcional, puede ser uno de los siguientes:

La especificación del ancho y precisión del campo (5.2 en el ejemplo anterior) es opcional.

El primer número (5 en nuestro ejemplo) es el ancho del campo, el cual nos indica el menor

número de dígitos en la visualización. Si el número que se visualiza es menor que el ancho del

campo, se añadirán ceros o espacios delante del número en cuestión. La precisión se corresponde

con el segundo número en el ejemplo anterior), y especifica el número de dígitos que se

mostrarán a la derecha del punto decimal.

Page 5: Ficheros Script

El último elemento es el correspondiente al formato de conversión (f en el ejemplo anterior). Éste

es obligatorio. A continuación se muestran los caracteres de conversión más utilizados:

e Notación exponencial en minúsculas (ej. 1.709098e+001).

E Notación exponencial en mayúsculas (ej. 1.709098E+001).

f Notación de punto fijo (ej. 17.090980).

g Representación en formato corto de las notaciones e o f.

G Representación en formato corto de las notaciones E o f.

i Entero.

Se puede obtener información adicional sobre estos y otros formatos utilizando la ayuda de

MATLAB, el menú Help (Ayuda).

Ejemplo: Para pedir al usuario por pantalla tres números y responder con el mensaje: el promedio

es el prom de los números ingresados.

Método 1

n1=input('Ingrese el primer número: ');

n2=input('Ingrese el segundo numero: ');

n3=input('Ingrese el tercer numero: ');

fprintf('El promedio es %f, de los números ingresado', (n1+n2+n3)/3);

Método 2

Funciones y archivos de funciones

Page 6: Ficheros Script

En principio existen dos tipos de funciones: las funciones inline, que se insertan en la línea de

comandos y las que se escriben en un documento de texto externo. Esta última forma, que es la

evolución natural de los ficheros script, es más flexible y es en la que nos centraremos a

continuación.

Sintaxis de funciones en línea

Nombre = inline ('expresión matemática en forma de cadena')

Sintaxis de un archivo de funcion

% La primera línea de este archivo debe contener la sintaxis de cómo usarla en la forma :

function [salida1,salida2] = filename(entrada1,entrada2,entrada3)

Una función puede tener tantas entradas y salidas como se necesiten. Las siguientes líneas

contienen el texto que aparecerá cuando se invoque el comando help .

nombre_de_la_función . Estas líneas son opcionales, pero deben entrarse usando porciento % al

principio de cada línea, del mismo modo que ingresaría los comentarios al final de las líneas que lo

requieran en cualquier otro archivo-m no necesariamente de una función. Finalmente y abajo del

texto de ayuda, se incluirá el texto real de la función con todos los comandos o instrucciones

necesarias.

Consideraciones adicionales sobre el comando

Si se desea introducir una comilla simple dentro del texto, debe teclearse doblemente dentro de la

cadena

Page 7: Ficheros Script

El comando fprintf permite vectorización esto significa que cuando se introduce una variable de

tipo array para ser visualizada, el comando muestra tantos elementos como haya en el array,

utilizando incluso una visualización apropiada, en forma de columna y filas, para el caso de las

matrices.

Utilización del comando fprintf para guardar la salida generada en un fichero:

Además de poder visualizar la salida en la ventana de comandos, el comando fprintf no da la

posibilidad de volcar esta salida a un fichero. La ventaja es que, guardando el resultado, es posible

reutilizarlo en Matlab o en otras aplicaciones.

Para guardar la salida en un fichero se requieren los siguientes pasos:

a) Abrir el fichero utilizado el comando fopen

b) Escribir la salida al fichero utilizando el comando fprintf

c) Cerrar el fichero utilizando el comando fclose

Paso a:

Antes de que los datos sean escritos en un fichero, este debe ser abierto. Para hacer esto se

necesita el comando fopen, que crea un fichero nuevo vacio o abre un fichero ya existente en

disco para trabajar con el. La sintaxis del comando es la siguiente:

Fid=fopen( ‘Nombre_fichero , ´permisos´)

Fid es una variable denominada identificador de archivo. Esta variable guarda un escalar

correspondiente al fichero que se ha abierto. El nombre de fichero se escribe junto con su

extensión. En cuanto a los permisos, se corresponden con una serie de códigos que le dicen al

sistema como abrir el archivo. Alguno de los permisos mas comúnmente usados son los siguientes:

Page 8: Ficheros Script

‘ r’ indica que el fichero se abre para leer de el (incluida por defecto)

‘W indica que el fichero se abre para escritura. Si el fichero ya existe, su contenido será

eliminado. Si el fichero no existe se creara vacio.

‘a indica lo mismo que ‘W , excepto que si el fichero existe entonces los datos serán

añadidos al final del fichero (los elementos existentes no se eliminan).

Si no se incluyen permisos en el comando fopen, se toma el permiso por defecto, que es ‘r

Paso b

Una vez que el fichero está abierto, se utiliza el comando fprintf para escribir la salida en el

fichero. El comando fprintf se utiliza de forma idéntica a como se ha explicado anteriormente. La

única diferencia es que ahora hay que poner el identificador de archivos (fid) delante del texto en

el comando, de la forma

Fpintf (fid,’texto %-5.2f texto adicional , nombre_variable)

Paso C

Cuando se ha terminado de escribir los datos en el archivo, este deber ser cerrado utlizando el

comando fclose. La sintaxis de este comando es la siguiente:

fclose(fid)

Notas adicionales sobre uso del comando fprintf para guardar la salida en un fichero:

el fichero se cre en el directorio de trabajo por defecto.

Es posible utilizar el comando fprintf para escribir en mas de un fichero a la vez. Para hacer

esto simplemente se abren tantos ficheros como sena necesarios con el comando fopen,

obteniendo distintos identificadores para cada archivo, después se utiliza el identificador

Page 9: Ficheros Script

deseado dentro del comando fprintf para volcar la salida a uno u otro fichero. Todos los

ficheros deben ser cerrados al final con el comando fclose.

Importación y exportación de datos

Matlab es un software comumente utilizado para el análisis de datos experimentales que peuden

provenir de distintas fuentes, incluidos otros programas. La forma de procesar estos datos

externos es importarlos a MATLAB. De fomra análoga, los datos calculados por MTLAB, peuden ser

transferidos o exportados a otras aplicaciones. Auqnue existen distintos tipo de datos (números,

textos, audios, etc).

La importación de datos se peude llevar a cabo mediante comandos o utilizando un asistente de

importación de daots (import Wizard). Los comandos son utiles cuando el formato de los datos

importados es conocido. MTLAB posee varios comandos que pueden incluir en un fichero script,

de forma que los datos se importen dentro del programa y antes de ser procesados por este. El

asistente de importación de datos es útil cuando el formato de los datos (o el comando utilizado

para la importación de datos) no es conocido. Este asistente determina el formato de los datos y

posteriormente los importa automáticamente.

Importación y exportación de datos hacia/desde Excel:

Para llevar a cabo la importación de datos de Excel se utiliza el comando xlsread:

Nombre_variable=xlsread( nombre_fichero’)

Nombre_fichero’, introducido como cadena, es el nombre del fichero Excel. La ubicación

de este fichero deber ser el directorio de trabajo actual o bien estar en la ruta de

búsqueda

Page 10: Ficheros Script

Si el fichero Excel importado tiene más de una hoja de cálculo solo se importaran los

datos de la primera hoja.