Publicado el 24 de Febrero del 2020
432 visualizaciones desde el 24 de Febrero del 2020
94,4 KB
35 paginas
Creado hace 16a (02/11/2008)
Computación 1
- 2008 -
Manipulación de
Manipulación de
archivos
Necesidades
Guardar en archivos datos del espacio de trabajo.
Recuperar datos guardados previamente.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
2
Guardar datos
Copiar (al portapapeles) desde la Ventana de
Comandos de Matlab y pegar en un archivo de texto.
Guardar datos en un archivo binario o ASCII usando la
función save.
Guardar planillas de cálculo, datos científicos, imágenes
o audio con funciones que vienen con las herramientas
o audio con funciones que vienen con las herramientas
de Matlab.
Guardar datos en un archivo utilizando las operaciones
de Entrada/Salida que proporciona Matlab (fwrite,
fprintf, etc.).
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
3
Recuperar datos
Ingresar (manualmente) o pegar datos en la Ventana de
Comandos.
Crear un script para inicializar matrices u otras
estructuras de datos.
Cargar archivos binarios o ASCII utilizando load.
Cargar planillas de cálculo, datos científicos, imágenes o
Cargar planillas de cálculo, datos científicos, imágenes o
audio con funciones que vienen con las herramientas de
Matlab.
Cargar datos desde un archivo utilizando las
operaciones de Entrada/Salida que proporciona Matlab
(fread, fscanf, etc.).
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
4
Guardar datos usando save
Permite guardar variables del espacio de trabajo en el
disco.
Sintaxis:
save
save nombre_de_archivo
save nombre_de_archivo variables
save nombre_de_archivo variables
save nombre_de_archivo opciones
save nombre_de_archivo variables opciones
save ('nombre_de_archivo', 'var1', 'var2', …)
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
5
Guardar datos usando save
save
Guarda todas las variables en el archivo matlab.mat.
save nombre_de_archivo
Guarda todas las variables en el archivo especificado.
save nombre_de_archivo variables
Guarda solamente las variables especificadas (separadas por
espacios) en el archivo especificado.
espacios) en el archivo especificado.
save nombre_de_archivo opciones
Guarda todas las variables en el archivo especificado, utilizando
alguna de las siguientes opciones:
-append
-ascii
-ascii -tabs
-ascii -double
Agrega nuevas variables a un archivo preexistente.
Guarda datos en formato ASCII con números de hasta 8 dígitos.
Ídem anterior, pero las columnas se separan con tabuladores.
Guarda datos en formato ASCII con números de hasta 16 dígitos.
-ascii – double -tabs
Ídem anterior, pero las columnas se separan con tabuladores.
-mat
Guarda datos en formato binario (el que viene por defecto)
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
6
Guardar datos usando save
Ejemplo 1
save test.mat
Ejemplo 2
p = 35;
q = ones(20);
save arch.mat p q
Ejemplo 3
M = [1 2 3; 4 5 6; 7 8 9];
save arch.dat M -ascii -double
Ejemplo 4
save('d:\pub\arch.dat','p','q','-ASCII')
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
7
Formatos de archivo
Binario
Los datos (numéricos o alfabéticos) se guardan en representación
binaria.
Los datos numéricos se convierten a punto flotante de máxima
precisión y se pasan a binario.
Puede guardarse y recuperarse más de una variable.
ASCII
ASCII
Los datos (solo números) se guardan en representación ASCII.
Los números se guardan como texto. La precisión por defecto es
simple, pero se pueden guardar números de doble precisión.
Por ejemplo, el número 27 se guarda como el texto "2.7000000e+001"
(ocupa 14 bytes) en precisión simple y "2.7000000000000000e+001"
(ocupa 23 bytes) en precisión doble.
Puede guardarse una única variable.
Las columnas se separan por espacios o tabuladores.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
8
Formatos de archivo
Ejemplo de un archivo en formato ASCII
M = [1 2 3; 4 5 6; 7 8 9];
save arch.dat M -ascii -single -tabs
Archivo arch.dat:
Archivo arch.dat:
1.0000000e+000
2.0000000e+000
3.0000000e+000
4.0000000e+000
5.0000000e+000
6.0000000e+000
7.0000000e+000
8.0000000e+000
9.0000000e+000
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
9
Cargar datos usando load
Permite cargar variables desde el disco.
Sintaxis:
load
load nombre_de_archivo
load nombre_de_archivo variables
load -ascii nombre_de_archivo
load -ascii nombre_de_archivo
load -mat nombre_de_archivo
load('arg1', 'arg2', 'arg3', …)
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
10
Cargar datos usando load
load
Carga las variables guardadas en el archivo matlab.mat.
load nombre_de_archivo
Carga las variables desde el archivo especificado.
load nombre_de_archivo variables
Carga solamente las variables especificadas (separadas por
espacios) desde el archivo especificado.
espacios) desde el archivo especificado.
load -ascii nombre_de_archivo
Carga las variables desde el archivo especificado, tratándolo
como si su contenido estuviera en ASCII.
load -mat nombre_de_archivo
Carga las variables desde el archivo especificado, tratándolo
como si su contenido estuviera en binario.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
11
Cargar datos usando load
Ejemplo 1
load test.mat
Ejemplo 2
load -ascii arch.dat
Ejemplo 3
p = load('-ASCII','d:\pub\arch.dat')
p = load('-ASCII','d:\pub\arch.dat')
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
12
Otros delimitadores de columna
Con save y load en formato ASCII las columnas se
delimitan con espacios o tabuladores.
Si quiero utilizar otros delimitadores uso dlmwrite y
dlmread.
Si quiero trabajar con archivos separados por comas
(CSV files), también puedo usar csvwrite y csvread.
(CSV files), también puedo usar csvwrite y csvread.
Las funciones csvwrite y csvread son casos
particulares de dlmwrite y dlmread.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
13
Otros delimitadores de columna
Ejemplos:
M = [1 2 3; 4 5 6; 7 8 9];
dlmwrite('arch.dat', M, '|')
Archivo arch.dat:
Archivo arch.dat:
1|2|3
4|5|6
7|8|9
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
14
Entrada y Salida de bajo nivel
Matlab ofrece operaciones que permiten tener mayor
control en la Entrada y Salida de datos:
fopen
Abre un archivo.
fprintf
fprintf
Da formato a los datos y los escribe en un archivo.
fscanf
Lee datos con formato de un archivo.
feof
Verifica que no se haya llegado al final del archivo.
fclose
Cierra un archivo abierto.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
15
Entrada y Salida de bajo nivel
Receta para escribir un archivo:
1:
2:
2.1:
3:
Abro el archivo para escribirlo.
Mientras haya datos para guardar,
Guardo los datos.
Cierro el archivo.
Receta para leer un archivo:
1:
2:
2.1:
2.2:
3:
Abro el archivo para leerlo.
Mientras haya datos para leer,
Leo los datos.
Realizo operaciones con los datos.
Cierro el archivo.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
16
Entrada y Salida de bajo nivel
Receta para escribir un archivo:
1:
2:
2.1:
3:
Abro el archivo para escribirlo.
Mientras haya datos para guardar,
Guardo los datos.
Cierro el archivo.
Receta para leer un archivo:
1:
2:
2.1:
2.2:
3:
Abro el archivo para leerlo.
Mientras haya datos para leer,
Leo los datos.
Realizo operaciones con los datos.
Cierro el archivo.
fopen
fprintf
fclose
fopen
feof
fscanf
fclose
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
17
Entrada y Salida de bajo nivel
Consideraciones:
La operación fopen retorna un número (denominado handler)
que representa al archivo abierto. Las demás operaciones
utilizan ese handler para trabajar con el archivo.
Una vez abierto el archivo, todas las operaciones fprintf
agregan nuevos datos.
Los archivos poseen un puntero de lectura. Cada vez que se
Los archivos poseen un puntero de lectura. Cada vez que se
invoca la operación fscanf, el puntero avanza tantos bytes
como datos se hayan leído.
Se puede consultar si el puntero llegó al final del archivo (end of
file, o eof) utilizando la operación feof.
Hay que recordar siempre cerrar los archivos con fclose.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
18
Entrada y Salida de bajo nivel
Sintaxis de fopen:
handler = fopen(nombre_de_archivo)
handler = fopen(nombre_de_archivo, permiso)
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
19
Entrada y Salida de bajo nivel
handler = fopen(nombre_de_archivo)
Abre el archivo para acceso de lectura.
handler = fopen(nombre_de_archivo, tipo_de_acceso)
Abre el archivo para el tipo de acceso especificado. Los tipos de
acceso son:
'r'
'r'
'w'
'a'
Abrir el archivo para leerlo.
Abrir el archivo para leerlo.
Abrir el archivo, o crearlo, para escribirlo. Si
existe contenido, descartarlo.
Abrir el archivo, o crearlo, para escribirlo.
Agregar nuevo contenido al final del archivo.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
20
Entrada y Salida de bajo nivel
Sintaxis de fprintf:
count = fprintf(handler, formato, A, …)
Descripción:
Da formato a los datos de la matriz A (y todas las que se
especifiquen) y escribe en el archivo.
especifiquen) y escribe en el archivo.
Retorna la cantidad de bytes que se escribieron.
02/11/2008
Computación 1, 2008 - Facultad de Ingeniería
21
Entrada y Salida de bajo nivel
¿Qué es el formato?
El formato es un texto (string) que contiene caracteres ordinarios
y caracteres especiales, denominados caracteres de conversión.
También puede contener caracteres de escape.
Caracteres de conversión
Se utilizan para controlar la notación, alineación, dígitos
Se utilizan para controlar la notación, alineación, dígitos
significativos, ancho del campo y otros aspectos de un valor
escalar o una matriz.
Comienzan
Comentarios de: Computación 1 - 2008 - Manipulación de archivos (0)
No hay comentarios