This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Write Data to Text Files

Export tabular data contained in tables, cell arrays, or numeric arrays from the MATLAB® workspace to text files.

Export Table to Text File

You can export tabular data from MATLAB® workspace into a text file using the writetable function. Create a sample table, write the table to text file, and then write the table to text file with additional options.

Create a sample table, T, containing the variables Pitch, Shape, Price and Stock.

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)
T=5×4 table
    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 

Export the table, T, to a text file named tabledata.txt. View the contents of the file. By default, writetable writes comma-separated data, includes table variable names as column headings.

writetable(T,'tabledata.txt');
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

Create a table T2 which includes row names using the RowNames name-value pair argument.

rowNames = {'M4';'M5';'M6';'M8';'M10'};
T2 = table(Pitch,Shape,Price,Stock,'RowNames',rowNames)
T2=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 

Export T2 to a tab-delimited text file named tabledata2.txt. Use the Delimiter name-value pair argument to specify a tab delimiter, and the WriteRowNames name-value pair argument to include row names. View the contents of the file.

writetable(T2,'tabledata2.txt','Delimiter','\t','WriteRowNames',true);
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

Export Cell Array to Text File

You can export a cell array from MATLAB® workspace into a text file in one of these ways:

  • Convert the cell array to table and use writetable to export it to a text file.

  • Use fprintf to export the cell array by specifying the format of the output data.

Create a sample cell array C.

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

Export the cell array using writetable. First, convert the cell array to a table by using the cell2table function. Next, write the table to a text file.

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

View the contents of the file.

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

Alternatively, import the cell array using fprintf. Open a file that you can write to named celldata.dat. Define formatSpec using the format specifiers to describe the pattern of the data in the file. Typical format specifiers include '%s' for a character vector, '%d' for an integer, or '%f' for a floating-point number. Separate each format specifier with a space to indicate a space delimiter for the output file. Include a newline character at the end of each row of data ('\n').

fileID = fopen('celldata.dat','w');
formatSpec = '%s %d %2.1f %s\n';

Determine the size of C and export one row of data at a time using the fprintf function. Then close the file. fprintf writes a space-delimited file.

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

View the contents of the file.

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

Export Numeric Array to Text File

You can export a numerical array to a text file using dlmwrite. The dlmwrite function, enables you to specify the delimiter and the numerical precision of data in the file.

Create a numeric array A.

A = magic(5)/10 
A = 5×5

    1.7000    2.4000    0.1000    0.8000    1.5000
    2.3000    0.5000    0.7000    1.4000    1.6000
    0.4000    0.6000    1.3000    2.0000    2.2000
    1.0000    1.2000    1.9000    2.1000    0.3000
    1.1000    1.8000    2.5000    0.2000    0.9000

Write the numeric array to myData.dat and specify the delimiter to be ';'. Then, view the contents of the file.

dlmwrite('myData.dat',A,'delimiter',';')  
type myData.dat
1.7;2.4;0.1;0.8;1.5
2.3;0.5;0.7;1.4;1.6
0.4;0.6;1.3;2;2.2
1;1.2;1.9;2.1;0.3
1.1;1.8;2.5;0.2;0.9

Export the numbers in the array to have a precision of 5 decimal places. Then, view the contents of the file.

dlmwrite('myDataII.dat',A,'delimiter',';','precision','%.5f') 
type myDataII.dat
1.70000;2.40000;0.10000;0.80000;1.50000
2.30000;0.50000;0.70000;1.40000;1.60000
0.40000;0.60000;1.30000;2.00000;2.20000
1.00000;1.20000;1.90000;2.10000;0.30000
1.10000;1.80000;2.50000;0.20000;0.90000

See Also

| | |