Вы находитесь на странице: 1из 6

UNMSM-QUMICA

MATLAB.

Importando Datos de Texto Numrico

Si su archivo de datos solo contiene datos numricos, usted puede usar muchas de las
funciones de importacin de MATLAB (listadas en la Tabla 6.2), dependiendo de como estn
delimitados los datos.
Tabla 6.2: Comparacin de caractersticas de las Funciones de Importacin de
datos ASCI
Funcin

Tipo de dato

delimitadores

Nmero de valores
de retorno
Uno

csvread

datos numricos

Solo comas

dlmread

datos numricos

Uno

fscanf

alfabticos y numricos; sin


embargo, ambos tipos
retornados en una sola
variable de retorno

Cualquier
caracter
Cualquier
caracter

load

datos numricos

Solo espacios

Uno

textread

alfabticos y numricos

Cualquier
caracter

Valores mltiples
de retorno

Uno

Notas
Usado principalmente
con hojas de clculo.
Flexible y fcil de usar.
Parte de rutinas de bajo
nivel de E/S de
archivos. Requiere el
uso de fopen para
obtener un identificador
de archivo y fclose
despus de la lectura.
Fcil de usar. Usa la
forma funcional de load
para especificar el
nombre de la variable
de salida
Flexible, poderoso y
fcil de usar. Usa
cadenas de formato para
especificar
conversiones.

Si los datos son rectangulares, esto es, cada fila tiene el mismo nmero de elementos, el
comando ms simple de usar es el comando load. (El comando load tambin puede ser
usado para importar archivos MAT, el formato binario de MATLAB para ahorrar espacio.)
Por ejemplo, el archivo llamado datos.txt contiene dos filas de nmeros delimitados por
espacios.
1 2 3 4 5
6 7 8 9 10
Cuando usted usa load como un comando, ste importa los datos y crea una variable en el
espacio de trabajo con el mismo nombre del archivo, exceptuando la extensin del archivo.
>>load datos.txt;
>>whos
>>datos

Si desea nombrar la variable del espacio de trabajo con un nombre diferenta al del nombre del
archivo, use la forma funcional de load. En el siguiente ejemplo, los datos de datos.txt
son cargado a la variable A del espacio de trabajo.
>>A = load('datos.txt');

Laboratorio de Programacin y Computacin

Prof. Heber Helfer

UNMSM-QUMICA

Importando Archivos de Datos ASCII Delimitados


Si su archivo de datos usa un caracter delimitador diferente al espacio, usted puede elegir una
de varias funciones de importacin. (Vea la Tabla 6-2 para ver la lista completa.) La ms
simple de usar es la funcin dlmread.
Por ejemplo, considere un archivo de nombre ph.dat cuyo contenido est separado por
puntos y comas:
7.2;8.5;6.2;6.6
5.4;9.2;8.1;7.2
para leer todo el contenido de este archivo a un arreglo llamado A, digite

A = dlmread('ph.txt', ';');

Usted especifica el delimitador usado en el archivo de datos como un segundo argumento de


dlmread. Observe que, a pesar de que los ltimos nmeros de cada fila no estn seguidos por
un delimitador, dlmread puede procesar correctamente el archivo. dlmread ignora los
espacios en blanco entre los datos. De esa manera, el comando dlmread anterior funciona
an si el contenido de ph.txt es
7.2; 8.5; 6.2;6.6
5.4; 9.2 ;8.1;7.2

Importando Datos Numricos con Encabezados de Texto


Para importar un archivos de datos ASCII que contiene encabezados de texto use la funcin
textread, especificando el parmetro headerlines. textread acepta un grupo de
parmetros predefinidos que controlan diversos aspectos de la conversin. (Para ver una lista
completa de estos parmetros vea la pgina de referencia de textread.) El parmetro
headerlines le permite especificar el nmero de lneas en el encabezado del archivo que
textread debiera ignorar.
Por ejemplo, el archivo grados.txt contiene datos numricos con formato con un
encabezado de texto de una lnea.
Grado1
78.8
99.5
89.5

Grado2
55.9
66.8
77.0

Grado3
45.9
78.0
56.7

Para importar estos datos use el comando:


[grado1 grado2 grado3] = textread('grados.dat','%f %f %f',...
'headerlines',1)
grado1 =
78.8000
99.5000
89.5000
grado2 =

Laboratorio de Programacin y Computacin

Prof. Heber Helfer

UNMSM-QUMICA

55.9000
66.8000
77.0000
grado3 =
45.9000
78.0000
56.7000

Importando Datos Numricos y Alfabticos Mezclados


Si su archivo de datos contiene una mezcla de datos ASCII alfabticos y numricos, use la
funcin textread para importar los datos. textread puede retornar mltiples variables de
salida y usted puede especificar el tipo de cada variable.
Por ejemplo, el archivo midata.dat contiene una mezcla de datos alfabticos y numricos:
Sally
Larry
Tommy

Tipo1
Tipo2
Tipo1

12.34
34.56
67.89

45
54
23

Si
Si
No

Para leer el contenido completo del archivo midata.txt en el espacio de trabajo especifique
el nombre del archivo y la cadena de formato como argumentos de textread. En la cadena
de formato usted incluye especificadores de conversin que definen cmo desea usted que
cada tem sea interpretado. Por ejemplo, especifique %s para datos tipo cadena (texto), %f
para datos tipo punto flotante, etc.
Para cada especificador de conversin en su cadena (texto) de formato, usted debe especificar
una variable de salida separada. textread procesa cada dato en el archivo tal como se
especifica en la cadena de formato y coloca el valor en la variable de salida. El nmero de
variables de salida debe coincidir con el nmero de especificadores de conversin en la
cadena de formato.
En este ejemplo, textread lee el archivo midata.txt, aplicando la cadena de formato a
cada lnea del archivo hasta el fin del archivo.
[nombres,tipos,x,y,respuesta] = textread('midata.txt','%s %s %f ...
%d %s',1)
nombres =
'Sally'
'Larry'
'Tommy'
tipos =
'Tipo1'
'Tipo2'
'Tipo1'
x =
12.3400
34.5600
67.8900
y =
45

Laboratorio de Programacin y Computacin

Prof. Heber Helfer

UNMSM-QUMICA

54
23
respuesta =
'Si'
'Si'
'No'

Si sus datos usan un caracter delimitador diferente al caracter espacio, usted debe usar el
parmetro 'delimiter' de textread para especificar el delimitador. Por ejemplo, si el
archivo midata.dat usa punto y coma como delimitador, usted deber usar este comando:
[nombres,tipos,x,y,respuesta]=textread('midata.txt','%s %s %f ...
%d %s', 'delimiter',';')

Exportando Datos ASCII


Esta seccin describe cmo usar las funciones de MATLAB para exportar datos en algunos
formatos ASCII comunes. Por ejemplo, usted puede usar estas funciones para exportar una
matriz MATLAB como un archivo de texto donde las filas y columnas estn representadas
como valores numricos separados por espacios. La funcin que usted use depende de la
cantidad de datos que desee exportar y de su formato.
Tabla 6.4: Comparacin de Caractersticas de Funciones de Exportacin de Datos ASCII

Funcin

Se usa con
Datos numricos

Delimitador
Solo coma

diary

Datos numricos o
arreglo de celdas

Solo espacio

dlmwrite
fprintf

Datos alfabticos
y numricos
Datos numricos

Cualquier
caracter
Cualquier
caracter

save

Datos numricos

csvwrite

Notas
Usado principalmente con datos de hoja
de clculo.
Puede ser usado para arreglos pequeos.
Requiere la edicin del archivo de datos
para eliminar textos extraos.
Fcil de usar, flexible.

Parte de rutinas de bajo nivel de E/S de


archivos . Este es el comando ms
flexible pero tambin el ms difcil de
usar. Se debe usar fopen para obtener un
identificador de archivo antes de escribir
los datos y fclose para cerrar el archivo
despus de escribir los datos.
Tab o espacio Fcil de usar; los valores de salida son de
alta precisin.

Laboratorio de Programacin y Computacin

Prof. Heber Helfer

UNMSM-QUMICA

Exportando Archivos de Datos ASCII Delimitados


Para exportar un arreglo como un archivo de datos ASCII delimitado, usted puede usar ya sea
el comando save, especificando el calificador ASCII, o la funcin dlmwrite. El comando
save es fcil de usar; sin embargo, la funcin dlmwrite provee ms flexibilidad,
permitindole especificar cualquier caracter como delimitador y exportar subconjuntos de un
arreglo especificando un rango de valores.
Usando el Comando save
Para exportar el arreglo A,
>>A = [ 1 2 3 4 ; 5 6 7 8 ];

use el comando save tal como sigue:


>>save data.txt A -ASCII

Si usted ve el archivo creado en un editor de texto, se ve como esto:


1.0000000e+000 2.0000000e+000 3.0000000e+000 4.0000000e+000
5.0000000e+000 6.0000000e+000 7.0000000e+000 8.0000000e+000

Por omisin, save usa espacios como delimitadores, sin embargo puede usar tabs en vez de
espacios, especificando el calificador -tabs.
Cuando usted usa save para escribir un arreglo de caracteres a un archivo ASCII, ste escribe
el equivalente ASCII de los caracteres al archivo. Si usted escribe la cadena de caracteres
'hello' a un archivo, save escribe los valores
104 101 108 108 111
Usando la Funcin dlmwrite

Para exportar un arreglo en formato ASCII y especificar el delimitador usado en el archivo,


use la funcin dlmwrite.
Por ejemplo, para exportar el arreglo A,
>>A = [ 1 2 3 4 ; 5 6 7 8 ];

como un archivo de datos ASCII que usa punto y coma como delimitador, use este comando:
>>dlmwrite('midata.txt',A, ';')

Si usted ve el archivo creado en un editor de texto, se ver as:


1;2;3;4 5;6;7;8

Observe que dlmwrite no inserta delimitadores al final de las filas. Por omisin, si usted no
especifica un delimitador, dlmwrite usa una coma como delimitador. Usted puede
especificar un espacio (' ') como delimitador o, si usted especifica comillas vacas (''), sin
delimitador.

Laboratorio de Programacin y Computacin

Prof. Heber Helfer

UNMSM-QUMICA

Usando el Comando diary para Exportar Datos


Para exportar arreglos numricos pequeos o arreglos de celdas, usted puede usar el comando
diary. diary crea una copia textual de su sesin en MATLAB en un archivo de disco (con
excepcin de los grficos.)
Por ejemplo, si usted tiene un arreglo A en su espacio de trabajo,
>>A = [ 1 2 3 4; 5 6 7 8 ];

ejecute estos comandos en la lnea de ingreso de comandos de MATLAB para exportar este
arreglo usando
diary:

1. Active la funcin diary. Opcionalmente puede dar nombre al archivo de salida que crea
diary.
>>diary misdatos.txt

2. Despliegue en pantalla el contenido del arreglo que desea exportar. Este ejemplo despliega
el arreglo A. Usted tambin podra desplegar un arreglo de celda u otro tipo de dato
MATLAB.
>> A
A =
1 2 3 4
5 6 7 8

3. Desactive la funcin diary


>>diary off
diary crea el archivo misdatos.txt y registra todos los comandos ejecutados en la sesin

de MATLAB hasta que se deje de usarlo.


A =
1 2 3 4
5 6 7 8
>>diary off

4. Abra el archivo misdatos.txt de diary en un editor de textos y borre todo el texto


extrao.

Laboratorio de Programacin y Computacin

Prof. Heber Helfer

Вам также может понравиться