Está en la página 1de 6

2

Índice

Limitaciones de importdata
Alternativas

Uso avanzado ¿Por qué usar ficheros?


Lectura y escritura de ficheros

de archivos
Lectura de ficheros Excel

3 4

Método importdata Método importdata


X=importdata(‘nombre de fichero’)
Pero usando un fichero con otro formato como por ejemplo:
Almacena en un vector/matriz los datos del fichero cuyo nombre se 
posPeso.txt
especifica como argumento.
posicion: 1 impordata devuelve un struct con 
 El resultado de importdata depende del formato del archivo  los números y el texto en distintos 
peso: 35 campos.
leído.
posicion: 2
posParticulas.txt peso: 57
3  4  5 
Con este formato 
4  8  0 obtenemos una 
5  7  9 matriz de 4 filas y 
3 columnas.
2  1  6 datos=fscanf(fid,'posicion: %d\npeso: %d\n\n',[2 inf]);
5 6

Método importdata Lectura de ficheros

Cómo funciona impordata: fid = fopen(‘nombre del fichero’, ‘opciones’)


• Abre el archivo (fopen) Abre el archivo y nos devuelve su identificador
– Abre el archivo para ser leído Opciones tiene que ser uno de los siguientes:
• Lee el archivo (fscanf) • ‘r’         Abre el archivo para leer desde el principio
– Lee e interpreta el fichero y devuelve los datos • ‘w’       Abre el archivo para escribir descartando su contenido
• Cierra el archivo (fclose) • ‘a’        Abre el archivo para escribir empezando desde el final
– Libera el archivo

7 8

Lectura de ficheros Lectura de ficheros

datos=fscanf(fid,’formato’,tamaño) ¿Qué es el formato?

• Permite leer los datos del archivo Define cómo está escrito el archivo y qué queremos leer.

• fid identificador abierto con fopen
• formato         formato de los datos del fichero • Creamos un string definiendo el contenido 

• tamaño        tamaño de los datos a leer sustituyendo los datos a leer por caracteres especiales.

final=feof(fid) posición: 1
'posicion: %d\npeso: %d\n\n'
peso: 35
• Devuelve un 1 si estamos al final del archivo
• Devuelve un 0 en caso contrario %d  Indica donde están los datos que queremos leer
• Necesario para leer un archivo línea por línea  \n  Indica que hay un salto de línea en el fichero
9 10

Lectura de ficheros Lectura de ficheros

Más opciones de formato Parámetro tamaño
• %d Lee un entero • Indica el tamaño a leer
• %f  Lee un real • M,N nos produce una matriz [M*N]
• %s  Lee un string • M  cantidad de datos a leer en ‘formato’
• %c  Lee un solo carácter • N  cantidad de veces a leer ‘formato’
– N puede ser inf para leer hasta el final del archivo
Modificador * (%*d  ignora el entero correspondiente) • Sin importar el valor de N si el formato no coincide con 
el texto parará la lectura.

11 12

Lectura de ficheros Lectura de ficheros

Ejemplo  fclose(fid)

datos=fscanf(fid,'posicion: %d\npeso: %d\n\n',[2 inf]); • Cierra el fichero abierto con fopen


• Si no se cierra bien
posPeso.txt
• Se pueden perder datos
posicion: 1
• Se pueden corromper los archivos
peso: 35
datos • Impide que otros programas usen el archivo
posicion: 2 1 2 6
peso: 57 35 57 ‐43 NOTA: Una función SÓLO debe cerrar los archivos abiertos por esa 
función
posicion: 6
peso: ‐43
13 14

Lectura de ficheros ¿Por qué usar ficheros?


En lectura

Ejemplo ¿Qué hacer con los resultados?
%abrimos el fichero
fid = fopen('posPeso.txt', 'r'); • Existen los archivos .mat

%leemos el contenido en la variable – No legibles y no modificables externamente


datos • Alternativa  archivos .txt
datos = fscanf(fid,'posicion: %d\npeso:
%d\n\n',[2 inf]); • ¿Cómo guardarlos?

%cerramos el fichero – Crear archivo con fopen


fclose(fid); – Escribir los datos con fprintf

datos = – IMPORTANTE!! Cerrar archivo con fclose

1 2 6
35 57 -43

15 16

Escritura de ficheros Escritura de ficheros

fprintf(fid,’formato’,[datos]) El uso de ‘formato’ es similar al de fscanf
• Permite escribir los datos en el archivo • Se usan %d, %f, %s y %c para escribir los datos
• fid identificador abierto con fopen
• formato  formato en el que escribir %f ofrece una opción extra:
• [datos]  datos a escribir en vector • %.xf x indica la precisión del numero
Ejemplo: Numero 83.54679
• Usando %.2f escribe ‘83.54’
• Usando %.4f escribe ‘83.5467’
• Usando %f escribe ‘83.54679’
17 18

Escritura de ficheros Escritura de ficheros


En escritura

Datos
Ejemplo Ejemplo

fprintf(fid,'posicion: %d\npeso: %d\n\n',[1 2 3; 35 57 ‐43]); %abrimos el fichero


fid = fopen('posPeso.txt','w');
datos posPeso.txt
1 2 6 %escribimos el contenido
posicion: 1 fprintf(fid,'posicion: %d\npeso:
35 57 ‐43
peso: 35 %d\n\n',datos);

%cerramos el fichero
posicion: 2 fclose(fid);
peso: 57
datos =
posicion: 6
1 2 6
peso: ‐43 35 57 -43

19 20

Tipos de ficheros Tipos de ficheros

Existen principalmente dos tipos de fichero Tipos de ficheros binarios
• Texto plano (ASCII)  • .mat, .xls, .doc
– Los datos se guardan como caracteres ASCII • Requieren funciones capaces de leerlos
• Binario
– Los datos se codifican En matlab tenemos:

• .mat load, save
Legibilidad Facilidad Velocidad Tamaño
• .xls  xlsread, xlswrite
ASCII Alta Alta Baja Alto
Binario Baja Baja Alta Bajo • Existen funciones para varios tipos de archivos
21 22

Archivos Excel Archivos Excel

Archivos Excel en matlab num = xlsread(‘nombre de archivo’,hoja,rango)


• Pueden ser muy útiles Hoja hoja de la que se lee
• Funciones específicas Rango rango donde se encuentran los valores
– xlsread lee un archivo excel Num datos leídos
– xlswrite escribe un archivo excel num = xlsread('Datos.xlsx', 'Particulas', 'D4:F5')
– xlsinfo obtiene información sobre el archivo

num =

1 2 3
35 57 -43

23

Archivos Excel

xlswrite(‘nombre de archivo’,num,hoja, rango)
hoja hoja en la que se escribe (si no existe la crea)
rango rango donde escribir los valores
num datos a escribir

xlswrite('Datos.xlsx',num, 'Particulas', 'D4:F5')

num =

1 2 3
35 57 -43

También podría gustarte