Lectura y-escritura-desde-archivos

17
Lectura y Escritura desde archivos REALIZADO POR: ANTHONY GARCÍA ÁNGEL PARRA JOHNNY SINCHE

Transcript of Lectura y-escritura-desde-archivos

Page 1: Lectura y-escritura-desde-archivos

Lectura y Escritura desde archivos

REALIZADO POR: ANTHONY GARCÍA ÁNGEL PARRA JOHNNY SINCHE

Page 2: Lectura y-escritura-desde-archivos

1. Introducción

En el presente tema se estudiarán otras formas de intercambiar datos entre el Matlab y diversos programas o aplicaciones.

Se aprecia que Matlab dispone de comandos de entrada y salida que actúan sobre ficheros y permiten abrir y cerrar ficheros e importar y exportar datos.

Page 3: Lectura y-escritura-desde-archivos

2. Importar y exportar datos

Antes de estudiar opciones más complejas, es interesante comentar que la opción de copiar y pegar (Copy/Paste) puede ser adecuada en muchos casos.

Por ejemplo, copiar elementos de Excel y depositarlos en Matlab entre corchetes funciona con frecuencia.

Nota: Esta opción puede generar problemas por ejemplo, según se hayan introducido los números decimales.

Page 4: Lectura y-escritura-desde-archivos

2.1. Comandos Características:

Comandos fopen, fclose y fprintf Estos comandos sirven para abrir y cerrar ficheros. Para abrir un fichero, se utiliza el siguiente comando: variable = fopen(‘fichero’,’permiso’) donde: variable es el nombre de la variable que guarda el identificador

del fichero. ‘fichero’ especifica el nombre externo y la dirección del archivo. ‘permiso’ indica el modo de apertura del fichero: r abre un fichero existente para lectura.

Page 5: Lectura y-escritura-desde-archivos

r+ abre un fichero existente para lectura y escritura.

w crea un fichero nuevo para escritura.

w+ crea un fichero nuevo para lectura y escritura.

Destacar que este comando lo que hace es poner en contacto el programa con un fichero, no lo visualiza en pantalla. Para trabajar con ficheros lo primero será abrirlo y lo último cerrarlo.

Para cerrar un fichero se utiliza la función: fclose(fid) que cierra el fichero de identificador fid y devuelve 1 si el cierre es correcto y 0 si es incorrecto.

Page 6: Lectura y-escritura-desde-archivos

Para escribir en un fichero se utiliza el comando: fprintf(fid,’format’,A,….) que escribe los elementos especificados en A (que en general es una matriz) en el fichero de identificador fid (previamente abierto) con el formato especificado en ‘format’. Así, la función fprintf dirige su salida a un fichero indicado por el indicador.

Formato de datos: %d Enteros. %f Reales con punto fijo. %e Reales con formato exponencial. %g Utiliza uno de los formatos anteriores; el que dé la mayor precisión en el

menor espacio. Si se utiliza el comando fprintf(‘format’,A,….) la escritura de datos se realiza

en la pantalla.

Page 7: Lectura y-escritura-desde-archivos

Ejemplo: Creamos un fichero ASCII de nombre “resultados” que contiene los

valores de la función exponencial para valores de la variable entre 0 y 1 separados una décima y lo representamos en la pantalla.

%Crear un archivo en formato txt en el cual contenga los valores de la. %función exponencial de las velocidades de 0 a 100 en intervalos de

10. x=0:10:100 % vector velocidades y=[x;exp(x)] % función exponencial de las velocidades fid=fopen('resultado.txt','w'); %identificador del fichero fprintf(fid,'%6.2f %12.8f \n', y); %para escribir los datos en el

fichero. Fclosed(fid) % Cierra el archivo, devuelve un 0 si no hay errores y un

-1 en caso contrario

Page 8: Lectura y-escritura-desde-archivos

Comando fscanf

La lectura de datos a partir de un fichero ASCII se realiza mediante los comandos:

[A,cont]=fscanf(fid,’formato’) que lee datos con el formato especificado del fichero abierto con el identificador fid, en un vector columna de nombre A. cont es el número de datos leídos.

[A,cont]=fscanf(fid,’formato’,size) que lee datos con el formato especificado del fichero abierto con el identificador fid y los escribe en la matriz A de tamaño size. cont es el número de datos leídos.

Page 9: Lectura y-escritura-desde-archivos

Ejemplo: Se supone que en la carpeta de trabajo de MATLAB: ‘work’, se encuentra

un archivo de nombre datos.txt, cuyo contenido es: 1 2 3 4 5 6 7 8 9 10 % Apartir del archivo datos que contienen temperaturas que varian de 1 a % 10 mediante el comando fscanf imprimir cuantas temperaturas hay en % total. A=[1 2 3 4 5 6 7 8 9 10] fid=fopen('datos.txt','r'); %Lector de archivo [A,cont]=fscanf(fid,'%d') % vector columna de A y el contador Fclosed(fid) % Cierra el archivo, devuelve un 0 si no hay errores y un -1

en caso contrario.

Page 10: Lectura y-escritura-desde-archivos

Nota: Si realizamos estas operaciones seguidas tendremos problemas en la segunda debido a que el fichero ha sido anteriormente leído y es necesario rebobinarlo si se quiere leer de nuevo.

Page 11: Lectura y-escritura-desde-archivos

Otras Aplicaciones

El comando A=load(‘flat.txt’) leerá estos valores y los asignará a la matriz A. Para más información utilizar help load.

Es posibles leer un flat file escrito con caracteres ASCII. Un flat file es un fichero con filas de longitud constante separadas con Intro, y varios datos por fila separados por blancos (espacios).

Page 12: Lectura y-escritura-desde-archivos

Cuestionario

Cuales son los ficheros de abrir y cerrar archivos:

a) fprintf-fscanf-disp b) fopen-fscanf-disp c) fopen-fclose-fscanf d)fclose-input-fopen

Page 13: Lectura y-escritura-desde-archivos

¿Para qué sirve el comando fopen?

¿Para qué sirve el comando fopen? Crear matrices a partir de archivos en formatos impropios de

Matlab Guardar archivos en formatos impropios de Matlab a partir de

matrices Cerrar archivos Mostrar los archivos guardados en el Works pace

Page 14: Lectura y-escritura-desde-archivos

¿Para qué sirve el comando fscanf?

Crear matrices a partir de archivos en formatos impropios de Matlab

Cerrar archivos Guardar archivos en formatos impropios de Matlab a partir de

matrices Elimina los archivos guardados en el Works pace

Page 15: Lectura y-escritura-desde-archivos

¿Cuál es el comando que cambia de valor al momento de su ejecución?

Load Fprintf Fscanf Disp Fclose Input fopen

Page 16: Lectura y-escritura-desde-archivos

¿Al cerrar un archivo con el comando fclose que se imprime en el Command Window?

0 si no hay errores y -1 caso contrario 1 si no hay errores y 0 caso contrario 1 si no hay errores y -1 caso contrario 0 si no hay errores y 1 caso contrario

Page 17: Lectura y-escritura-desde-archivos

Bibliografía:

http://www2.caminos.upm.es/Departamentos/matematicas/Fdistancia/PIE/matlab/temasmatlab/TEMA%208.pdf

https://www.fing.edu.uy/inco/cursos/comp1/teorico/2008/manipulacion_de_archivos.pdf

http://fi.uaemex.mx/hsalinas/cursos/matlab/Notas_parte4.pdf