Write data to text file
collapse all in page
Syntax
fprintf(fileID,formatSpec,A1,...,An)
fprintf(formatSpec,A1,...,An)
nbytes = fprintf(___)
Description
example
fprintf(fileID,formatSpec,A1,...,An)
appliesthe formatSpec
to all elements of arrays A1,...An
incolumn order, and writes the data to a text file. fprintf
usesthe encoding scheme specified in the call to fopen
.
example
fprintf(formatSpec,A1,...,An)
formats data and displays the results on the screen.
example
nbytes = fprintf(___)
returnsthe number of bytes that fprintf
writes, usingany of the input arguments in the preceding syntaxes.
Examples
collapse all
Print Literal Text and Array Values
Open Live Script
Print multiple numeric values and literal text to the screen.
A1 = [9.9, 9900];A2 = [8.8, 7.7 ; ... 8800, 7700];formatSpec = 'X is %4.2f meters or %8.3f mm\n';fprintf(formatSpec,A1,A2)
X is 9.90 meters or 9900.000 mmX is 8.80 meters or 8800.000 mmX is 7.70 meters or 7700.000 mm
%4.2f
in the formatSpec
input specifies that the first value in each line of output is a floating-point number with a field width of four digits, including two digits after the decimal point. %8.3f
in the formatSpec
input specifies that the second value in each line of output is a floating-point number with a field width of eight digits, including three digits after the decimal point. \n
is a control character that starts a new line.
Print Double-Precision Values as Integers
Open Live Script
Explicitly convert double-precision values with fractions to integer values.
a = [1.02 3.04 5.06];fprintf('%d\n',round(a));
135
%d
in the formatSpec
input prints each value in the vector, round(a)
, as a signed integer. \n
is a control character that starts a new line.
Write Tabular Data to Text File
Write a short table of the exponential functionto a text file called exp.txt
.
x = 0:.1:1;A = [x; exp(x)];fileID = fopen('exp.txt','w');fprintf(fileID,'%6s %12s\n','x','exp(x)');fprintf(fileID,'%6.2f %12.8f\n',A);fclose(fileID);
The first call to fprintf
prints headertext x
and exp(x)
, and the secondcall prints the values from variable A
.
If you plan to read the file with Microsoft® Notepad,use '\r\n'
instead of '\n'
tomove to a new line. For example, replace the calls to fprintf
withthe following:
fprintf(fileID,'%6s %12s\r\n','x','exp(x)');fprintf(fileID,'%6.2f %12.8f\r\n',A);
MATLAB® import functions, all UNIX® applications, and Microsoft Word andWordPad recognize '\n'
as a newline indicator.
View the contents of the file with the type
command.
type exp.txt
x exp(x) 0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880 0.70 2.01375271 0.80 2.22554093 0.90 2.45960311 1.00 2.71828183
Get Number of Bytes Written to File
Open Live Script
Write data to a file and return the number of bytes written.
Write an array of data, A
, to a file and get the number of bytes that fprintf
writes.
A = magic(4);fileID = fopen('myfile.txt','w');nbytes = fprintf(fileID,'%5d %5d %5d %5d\n',A)
nbytes = 96
The fprintf
function wrote 96 bytes to the file.
Close the file.
fclose(fileID);
View the contents of the file with the type
command.
type('myfile.txt')
16 5 9 4 2 11 7 14 3 10 6 15 13 8 12 1
Display Hyperlinks in Command Window
Display a hyperlink (The MathWorks Web Site) onthe screen.
url = 'https://www.mathworks.com';sitename = 'The MathWorks Web Site';fprintf('<a href = "%s">%s</a>\n',url,sitename)
%s
in the formatSpec
inputindicates that the values of the variables url
and sitename
,should be printed as text.
Input Arguments
collapse all
fileID
— File identifier
1
(default) | 2
| scalar
Fileidentifier, specified as one of the following:
A file identifier obtained from fopen.
1
for standard output (the screen).2
for standard error.
Data Types: double
A1,...,An
— Numeric or character arrays
scalar | vector | matrix | multidimensional array
Numeric or character arrays, specified as a scalar, vector,matrix, or multidimensional array.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
Output Arguments
collapse all
nbytes
— Number of bytes
scalar
Number of bytes that fprintf
writes, returnedas a scalar. When writing to a file, nbytes
isdetermined by the character encoding. When printing data to the screen, nbytes
isthe number of characters displayed on the screen.
Tips
Format specifiers for the reading functions
sscanf
andfscanf
differfrom the formats for the writing functionssprintf
andfprintf
.The reading functions do not support a precision field. The widthfield specifies a minimum for writing, but a maximum for reading.If you specify an invalid formatting operator or special character, then
fprintf
prints all text up to the invalid operator or character and discards the rest.Example: If
formatSpec
is'value = %z'
, thenfprintf
prints'value ='
because%z
is not a formatting operator.Example: If
formatSpec
is'character \x99999 = %s'
, thenfprintf
prints'character'
because\x99999
is not a valid special character.
References
[1] Kernighan, B. W., and D. M. Ritchie, TheC Programming Language, Second Edition, Prentice-Hall,Inc., 1988.
[2] ANSI specification X3.159-1989: “ProgrammingLanguage C,” ANSI, 1430 Broadway, New York, NY 10018.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The
formatSpec
parameter must be constant.In
formatSpec
, hexadecimal numbers must be in the range [0 7F] and octal numbers must be in the range [0 177].If
fileID
has a constant value of1
or2
and extrinsic calls are not possible, the code generator produces a Cprintf
call. Extrinsic calls are not possible when extrinsic calls are disabled or whenfprintf
is called inside aparfor
loop.The behavior of
fprintf
in the generated code matches the C compiler behavior instead of the MATLAB behavior in these cases:The format specifier has a corresponding C format specifier, for example,
%e
or%E
.The
fprintf
call is inside aparfor
loop.Extrinsic calls are disabled.
These options and capabilities are not supported:
The
n$
position identifier for reordering input valuesPrinting arrays
Using subtypes to print a floating-point number as its octal, decimal, or hexadecimal value
When you call
fprintf
with the format specifier%s
, you cannot put a null character in the middle of the input character vector. To write a null character, usefprintf(fid, '%c', char(0))
.Input argument types must match their format types. For example, if
n
is a double, code generation does not allow the following code:str = sprintf('%d',n)
For code generation, first cast
n
to a signed integer type such asint8
.str = sprintf('%d',int8(n))
When you call
fprintf
with aninteger format specifier, the type of the integer argument must bea type that the target hardware can represent as a native C type.For example, if you callfprintf('%d', int64(n))
,then the target hardware must have a native C type that supports a64-bit integer.
Thread-Based Environment
Run code in the background using MATLAB® backgroundPool
or accelerate code with Parallel Computing Toolbox™ ThreadPool
.
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
Usage notes and limitations:
This function accepts GPU arrays, but does not run on a GPU.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
Usage notes and limitations:
This function operates on distributed arrays, but executes in the client MATLAB.
For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Version History
Introduced before R2006a
See Also
disp | fclose | ferror | fopen | fread | fscanf | fwrite | fseek | ftell | sprintf
Topics
- Export Cell Array to Text File
- Append to or Overwrite Existing Text Files
- Formatting Text
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Contact your local office