fprintf

advertisement
Write data to text file - MATLAB fprintf
Page 1 of 5
fprintf
Write data to text file
Syntax
fprintf(fileID,formatSpec,A1,...,An)
fprintf(formatSpec,A1,...,An)
example
nbytes = fprintf( ___ )
example
example
Description
fprintf(fileID,formatSpec,A1,...,An) applies the formatSpec to all elements of arrays A1,...An in column order,
and writes the data to a text file. fprintf uses the 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( ___ ) returns the number of bytes that fprintf writes, using any of the input arguments in the
preceding syntaxes.
example
Examples
collapse all
Print Literal Text and Array Values
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 mm
X is 8.80 meters or 8800.000 mm
X 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
Explicitly convert double-precision values with fractions to integer values.
a = [1.02, 3.04, 5.06];
fprintf('%d\n',round(a));
1
3
5
%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 Table to Text File
Write a short table of the exponential function to 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)');
http://www.mathworks.com/help/matlab/ref/fprintf.html
11/20/2013
Write data to text file - MATLAB fprintf
Page 2 of 5
fprintf(fileID,'%6.2f %12.8f\n',A);
fclose(fileID);
The first call to fprintf prints header text x and exp(x), and the second call prints the values from variable A.
If you plan to read the file with Microsoft® Notepad, use '\r\n' instead of '\n' to move to a new line. For example, replace the calls to fprintf
with the 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 and WordPad recognize '\n' as a newline indicator.
View the contents of the file with the type command.
type exp.txt
x
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00
exp(x)
1.00000000
1.10517092
1.22140276
1.34985881
1.49182470
1.64872127
1.82211880
2.01375271
2.22554093
2.45960311
2.71828183
Get Number of Bytes Written to File
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
2
3
13
5
11
10
8
9
7
6
12
4
14
15
1
Display Hyperlinks in Command Window
Display a hyperlink (The MathWorks Web Site) on the screen.
http://www.mathworks.com/help/matlab/ref/fprintf.html
11/20/2013
Write data to text file - MATLAB fprintf
Page 3 of 5
site = 'http://www.mathworks.com';
title = 'The MathWorks Web Site';
fprintf('<a href = "%s">%s</a>\n',site,title)
%s in the formatSpec input indicates that the values of the variables site and title, should be printed as strings.
■ Exporting a Cell Array to a Text File
■ Appending or Overwriting Existing Files
Input Arguments
collapse all
fileID — File identifier
1 (default) | 2 | scalar
File identifier, 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
formatSpec — Format of the output fields
string
Format of the output fields, specified as a string.
The string can include a percent sign followed by a conversion character. The following table lists the available conversion characters and
subtypes.
Value Type
Conversion
Details
Integer, signed
%d or %i
Base 10
Integer, unsigned
%u
Base 10
%o
Base 8 (octal)
%x
Base 16 (hexadecimal), lowercase letters a–f
%X
Same as %x, uppercase letters A–F
%f
Fixed-point notation
%e
Exponential notation, such as 3.141593e+00
%E
Same as %e, but uppercase, such as 3.141593E+00
%g
The more compact of %e or %f, with no trailing zeros
%G
The more compact of %E or %f, with no trailing zeros
%bx or %bX
Double-precision hexadecimal, octal, or decimal value
Example: %bx prints pi as 400921fb54442d18
Floating-point number
%bo
%bu
%tx or %tX
%to
Single-precision hexadecimal, octal, or decimal value
Example: %tx prints pi as 40490fdb
%tu
Characters
%c
Single character
%s
String of characters
http://www.mathworks.com/help/matlab/ref/fprintf.html
11/20/2013
Write data to text file - MATLAB fprintf
Page 4 of 5
The string can include optional operators, which appear in the following order (includes spaces for clarity):
Optional operators include:
■ Identifier
Order for processing inputs. Use the syntax n$, where n represents the position of the value in the input list.
For example, '%3$s %2$s %1$s %2$s' prints inputs 'A', 'B', 'C' as follows: C B A B.
■ Flags
'–'
Left-justify. Example: %-5.2f
'+'
Print sign character (+) for positive values. Example: %+5.2f
' '
Pad to field width with spaces before the value. Example: % 5.2f
'0'
Pad to field width with zeros. Example: %05.2f
'#'
Modify selected numeric conversions:
■ For %o, %x, or %X, print 0, 0x, or 0X prefix.
■ For %f, %e, or %E, print decimal point even when precision is 0.
■ For %g or %G, do not remove trailing zeros or decimal point.
Example: %#5.0f
■ Field width
Minimum number of characters to print. Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list
('%12d', intmax) is equivalent to ('%*d', 12, intmax).
■ Precision
For %f, %e, or %E:
Number of digits to the right of the decimal point.
Example: '%6.4f' prints pi as '3.1416'
For %g or %G
Number of significant digits.
Example: '%6.4g' prints pi as ' 3.142'
Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list ('%6.4f', pi) is equivalent to ('%
*.*f', 6, 4, pi).
The string can also include combinations of the following:
■ Literal text to print. To print a single quotation mark, include '' in formatSpec.
■ Control characters, including:
%%
Percent character
\\
Backslash
\a
Alarm
\b
Backspace
\f
Form feed
\n
New line
http://www.mathworks.com/help/matlab/ref/fprintf.html
11/20/2013
Write data to text file - MATLAB fprintf
\r
Carriage return
\t
Horizontal tab
\v
Vertical tab
\xN
Character whose ASCII code is the hexadecimal number, N
\N
Character whose ASCII code is the octal number, N
Page 5 of 5
The following limitations apply to conversions:
■ Numeric conversions print only the real component of complex numbers.
■ If you specify a conversion that does not fit the data, such as a string conversion for a numeric value, MATLAB overrides the specified
conversion, and uses %e.
■ If you apply a string conversion (%s) to integer values, MATLAB converts values that correspond to valid character codes to characters. For
example, '%s' converts [65 66 67] to ABC.
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, returned as a scalar. When writing to a file, nbytes is determined by the character encoding. When printing
data to the screen, nbytes is the number of characters displayed on the screen.
More About
collapse all
Tips
■ Format specifiers for the reading functions sscanf and fscanf differ from the formats for the writing functions sprintf and fprintf. The
reading functions do not support a precision field. The width field specifies a minimum for writing but a maximum for reading.
■ Formatting Strings
References
[1] Kernighan, B. W., and D. M. Ritchie, The C Programming Language, Second Edition, Prentice-Hall, Inc., 1988.
[2] ANSI specification X3.159-1989: "Programming Language C," ANSI, 1430 Broadway, New York, NY 10018.
See Also
disp | fclose | ferror | fopen | fread | fscanf | fseek | ftell | fwrite | sprintf
http://www.mathworks.com/help/matlab/ref/fprintf.html
11/20/2013
Download