Read objects from file
This functionality does not run in MATLAB.
filename | n, <
Encoding = "encodingValue">) finput(
filename | n, <
Encoding = "encodingValue">,
x1, x2, …)
finput(filename, x) reads a MuPAD® object
from a file and assigns it to the identifier
finput(n, x) reads from the file associated
with the file descriptor
finput can read MuPAD binary files
as well as ASCII text files.
the format of the file automatically.
finput(..., Encoding = "encodingValue", ...)
uses the specified encoding. For supported encodings, see Options. You can use this option with
any of the previously specified syntaxes.
Binary files may be created via
write. Text files can also be created
in a MuPAD session via these functions (using the
see the corresponding help pages for details). Alternatively, text
files can be created and edited directly using your favorite text
editor. The file must consist of syntactically correct MuPAD objects
or statements, separated by semicolons or colons. An object may extend
over more than one line.
finput(filename) reads the first object
in the file and returns it to the MuPAD session.
finput(filename, x1, x2,
...) reads the contents of a file object by object. The i-th
object is assigned to the identifier xi.
The identifiers are not evaluated while executing
previously assigned values are overwritten. The objects are not evaluated.
Evaluation can be enforced with the function
eval. Cf. Example 2.
Instead of a file name, also a file descriptor
a file opened via
be used. The functionality is as described above. However, there is
one difference: With a file name, the file is closed automatically
after the data were read. A subsequent call to
at the beginning of the file. With a file descriptor, the file remains
close the file). The next time data are read from this file, the reading
continues at the current position. Consequently, a file descriptor
should be used if the individual objects in the file are to be read
via several subsequent calls of
finput. Cf. Example 3.
gzip compressed format with a filename
ending in "
.gz" are automatically and transparently
decompressed while reading.
If the number of identifiers specified in the
is larger than the number of objects in the file, the additional identifiers
are assigned the value
finput interprets the file name as a pathname
relative to the "working folder."
Note that the meaning of "working folder" depends on the operating system. On Windows® systems and on Mac OS X systems, the "working folder" is the folder where MATLAB® is installed. On UNIX® systems, it is the current working folder in which MATLAB was started. When started from a menu or desktop item, this is typically the user's home folder.
Also absolute path names are processed by
Create a new file in the system's temporary folder. The name
of the temporary folder varies for different platforms. The
fopen command with the
creates a file in any system's temporary folder (if such folder exists):
fid := fopen(TempFile, Write, Text):
Write the numbers 11, 22, 33 and 44 into a file:
fprint(fid, 11, 22, 33, 44):
return the name of the temporary file you created:
file := fname(fid):
Read this file with
finput(file, x1, x2, x3, x4)
x1, x2, x3, x4
If you try to read more objects than stored in the file,
the void object of type
finput(file, x1, x2, x3, x4, x5); domtype(%)
delete x1, x2, x3, x4, x5:
Objects read from a file are not evaluated:
fid := fopen(TempFile, Write, Text): file := fname(fid): fprint(file, x1): x1 := 23: finput(file)
Read some data from a file using several calls of
You have to use a file descriptor for reading from the file. The file
is opened for reading with
fid := fopen(TempFile, Write, Text): fprint(fid, 11, 22, 33, 44): file := fname(fid): n := fopen(file):
The file descriptor returned by
fopen can be passed to
reading the data:
finput(n, x1, x2): x1, x2
finput(n, x3, x4): x3, x4
Close the file and delete the identifiers:
fclose(n): delete n, x1, x2, x3, x4:
Alternatively, the contents of a file can be read into a MuPAD session in the following way:
n := fopen(file): for i from 1 to 4 do x.i := finput(n) end_for: x1, x2, x3, x4
fclose(n): delete n, i, x1, x2, x3, x4:
fid := fopen(TempFile, Write, Text): fprint(fid, 11, 22, 33): file := fname(fid): finput(file, (x1, x2), x3)
Error: The argument is invalid. [finput]
The following call does not lead to an error because the identifier
not evaluated. Consequently, only one object is read from the file
and assigned to
x12 := x1, x2: finput(file, x12): x1, x2, x12
delete x1, x2, x12:
To specify the encoding to write data, use
Encoding option applies only to text files
that are opened using a file name and not a file descriptor. Create
a temporary file and store the values
fprint(Text, Encoding="UTF-8", "finput_test", "abcäöü", 11, 22):
Specify the encoding to read the stored values correctly:
finput("finput_test", Encoding="UTF-8", x1, x2, x3): x1, x2, x3
If you do not specify an encoding, the default system encoding is used. Thus, your output might vary from that shown next. Characters unrecognized by the default system encoding are replaced by the default substitution character for that encoding:
finput("finput_test", x1, x2, x3): x1, x2, x3
The name of a file: a character string
A file descriptor provided by
This option lets you specify the character encoding to use. The allowed encodings are:
The default encoding is system dependent. If you specify the encoding incorrectly, characters might read incorrectly. Characters unrecognized by the encoding are replaced by the default substitution character for the specified encoding.
Encodings not listed here can be specified but might not produce correct results.
Last object that was read from the file.