Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Escribir a archivos de datos delimitados

Exportar matriz numérica a archivo ASCII

Para exportar una matriz numérica como un archivo de datos ASCII delimitado, puede utilizar la función save , especificando el calificador -ASCII o la función dlmwrite .

Tanto save como dlmwrite son fáciles de usar. Con dlmwrite, puede especificar cualquier carácter como delimitador, y puede exportar subconjuntos de una matriz especificando un rango de valores.

Sin embargo, save -ascii y dlmwrite no aceptan matrices de celdas como entrada. Para crear un archivo ASCII delimitado a partir del contenido de una matriz de celdas, primero puede convertir la matriz de celdas en una matriz mediante la función cell2mat y, a continuación, llamar a save o dlmwrite. Utilice este enfoque cuando su matriz de celdas contiene sólo datos numéricos y se traduce fácilmente en una matriz numérica de dos dimensiones.

Exportar matriz numérica a archivo ASCII mediante save

Para exportar el array A, donde

A = [ 1 2 3 4 ; 5 6 7 8 ];

a un archivo de datos ASCII delimitado por espacio, utilice la función save como sigue:

save my_data.out A -ASCII

Para ver el archivo, utilice la función type :

type my_data.out  1.0000000e+000  2.0000000e+000  3.0000000e+000  4.0000000e+000 5.0000000e+000  6.0000000e+000  7.0000000e+000  8.0000000e+000

Cuando se utiliza save para escribir una matriz de caracteres en un archivo ASCII, se escribe el equivalente ASCII de los caracteres en el archivo. Por ejemplo, si escribe 'hello' en un archivo, save escribe los valores

104 101 108 108 111

al archivo en formato ASCII de 8 dígitos.

Para escribir datos en formato de 16 dígitos, utilice la opción -double . Para crear un archivo delimitado por tabulaciones en lugar de un archivo delimitado por espacio, utilice la opción -tabs .

Exportar matriz numérica a archivo ASCII mediante dlmwrite

Para exportar una matriz numérica o de carácter a un archivo ASCII con un delimitador especificado, utilice la función dlmwrite .

Por ejemplo, para exportar el array A,

A = [ 1 2 3 4 ; 5 6 7 8 ]; 

a un archivo de datos ASCII que utiliza puntos y comas como delimitador, utilice este comando:

dlmwrite('my_data.out',A, ';') 

Para ver el archivo, utilice la función type :

type my_data.out  1;2;3;4 5;6;7;8 

De forma predeterminada, dlmwrite utiliza una coma como delimitador. Puede especificar un espacio (' ') u otro carácter como delimitador. Para especificar ningún delimitador, utilice comillas vacías ('').

Exportar tabla a archivo de texto

En este ejemplo se muestra cómo exportar una tabla a un archivo de texto, utilizando la función writetable .

Cree una tabla de ejemplo, T, para exportar.

Name = {'M4';'M5';'M6';'M8';'M10'}; Pitch = [0.7;0.8;1;1.25;1.5]; Shape = {'Pan';'Round';'Button';'Pan';'Round'}; Price = [10.0;13.59;10.50;12.00;16.69]; Stock = [376;502;465;1091;562]; T = table(Pitch,Shape,Price,Stock,'RowNames',Name)
T=5×4 table
           Pitch     Shape      Price    Stock
           _____    ________    _____    _____

    M4      0.7     'Pan'          10     376 
    M5      0.8     'Round'     13.59     502 
    M6        1     'Button'     10.5     465 
    M8     1.25     'Pan'          12    1091 
    M10     1.5     'Round'     16.69     562 

La tabla tiene encabezados de columna y nombres de fila.

Exporte la tabla, T, a un archivo de texto denominado tabledata.txt.

writetable(T,'tabledata.txt')

Ver el archivo.

type tabledata.txt
Pitch,Shape,Price,Stock 0.7,Pan,10,376 0.8,Round,13.59,502 1,Button,10.5,465 1.25,Pan,12,1091 1.5,Round,16.69,562 

De forma predeterminada, writetable escribe datos separados por comas, incluye nombres de variables de tabla como encabezados de columna y no escribe nombres de fila.

Exportar tabla T a un archivo de texto delimitado por tabuladores denominado tabledata2.txt y escribir los nombres de las filas en la primera columna de la salida. Utilice el argumento Delimiter name-value pair para especificar un delimitador de tabulación y el argumento par nombre-valor WriteRowNames para incluir nombres de fila.

writetable(T,'tabledata2.txt','Delimiter','\t','WriteRowNames',true)

Ver el archivo.

type tabledata2.txt
Row Pitch Shape Price Stock M4 0.7 Pan 10 376 M5 0.8 Round 13.59 502 M6 1 Button 10.5 465 M8 1.25 Pan 12 1091 M10 1.5 Round 16.69 562 

Exportar matriz de celdas a archivo de texto

Exportar matriz de celdas mediante fprintf

En este ejemplo se muestra cómo exportar una matriz de celdas a un archivo de texto, utilizando la función fprintf .

Cree un array de celdas de ejemplo, C, para exportar.

C = {'Atkins',32,77.3,'M';'Cheng',30,99.8,'F';'Lam',31,80.2,'M'}
C = 3x4 cell array
    {'Atkins'}    {[32]}    {[77.3000]}    {'M'}
    {'Cheng' }    {[30]}    {[99.8000]}    {'F'}
    {'Lam'   }    {[31]}    {[80.2000]}    {'M'}

Abra un archivo llamado celldata.dat para escribir.

fileID = fopen('celldata.dat','w');

fopen devuelve un identificador de archivo, fileID, que fprintf llamadas para escribir en el archivo.

Describa el patrón de los datos de archivo mediante especificadores de formato. Los especificadores de formato típicos incluyen '%s' para un vector de caracteres, '%d' para un entero o '%f' para un número de punto flotante. Separe cada especificador de formato con un espacio para indicar un delimitador de espacio para el archivo de salida. Incluya un carácter de nueva línea al final de cada fila de datos ('\n').

formatSpec = '%s %d %2.1f %s\n';

Algunos editores de texto de Windows ®, incluido el Bloc de notas de Microsoft ®, requieren una secuencia de caracteres de nueva línea de '\r\n' en lugar de '\n'. Sin embargo, '\n' es suficiente para Microsoft Word o WordPad.

Determine el tamaño de C. A continuación, exporte una fila de datos a la vez mediante la función fprintf .

[nrows,ncols] = size(C); for row = 1:nrows     fprintf(fileID,formatSpec,C{row,:}); end

fprintf escribe un archivo delimitado por espacio.

Cierre el archivo.

fclose(fileID);

Ver el archivo.

type celldata.dat
Atkins 32 77.3 M Cheng 30 99.8 F Lam 31 80.2 M 

Convertir matriz de celdas a tabla para exportación

En este ejemplo se muestra cómo convertir una matriz de celdas de texto mixto y datos numéricos en una tabla antes de escribir los datos en un archivo de texto. Las tablas son adecuadas para datos tabulares o orientados a columnas. A continuación, puede escribir la tabla en un archivo de texto mediante la función writetable .

Convierta la matriz de celdas, C, desde el ejemplo anterior, a una tabla utilizando la función cell2table . Agregue nombres de variables a cada columna de datos utilizando el argumento VariableNames name-value Pair.

T = cell2table(C,'VariableNames',{'Name','Age','Result','Gender'});

Escriba la tabla T en un archivo de texto.

writetable(T,'tabledata.dat')

Ver el archivo.

type tabledata.dat
Name,Age,Result,Gender Atkins,32,77.3,M Cheng,30,99.8,F Lam,31,80.2,M 

Consulte también

| | | |