reads a matrix from a text file
M = fscanfMat(filename[, fmt]); [M, text] = fscanfMat(filename [, fmt]);
a character string giving the name of the file to be scanned.
a character string giving the format. This is an optional
parameter, the default value is "%lg"
.
Supported format: %[width].[precision]type
or %type
where:
width
: optional number that specifies
the minimum number of characters output;
precision
: optional number that
specifies the maximum number of characters printed for all
or part of the output field, or the minimum number of
digits printed for integer values.
type
: lf, lg, d, i, e, f, g (see scanf_conversion).
output variable. A matrix of real numbers.
output variable. A column vector of strings. It is
comments in the beginning of the file filename
.
The fscanfMat
function is used to read a real
matrix from a text file. The first non-numeric lines of the file are
returned in text
if requested and all the remaining
lines must have the same number of columns (column separator are assumed
to be either white spaces or tab characters, if there are the both, white
spaces are chosen by default). The number of columns of the matrix
will follow the number of columns found in the file and the number of
lines is fetched by detecting eof in the input file. This function can be
used to read back numerical data saved with the
fprintfMat
(default separator used is a space).
fscanfMat
supports files encoded as ANSI/ASCII and UTF-8.
To read a CSV formatted file, the csvRead function is recommended.
fd = mopen(TMPDIR + "/Mat", "w"); mfprintf(fd, "Some text.....\n"); mfprintf(fd, "Some text again\n"); a = rand(6,6); for i = 1:6 , for j = 1:6, mfprintf(fd, "%5.2f ", a(i,j));end; mfprintf(fd, "\n"); end mclose(fd); a1 = fscanfMat(TMPDIR + "/Mat") A = ones(5,5) + 0.1; fprintfMat(TMPDIR + "/Matrix.txt", A, "%lg"); B = fscanfMat(TMPDIR + "/Matrix.txt", "%lg"); A == B C = [%nan, %inf, -%inf, 1]; fprintfMat(TMPDIR + "/MatrixNANINF.txt", C); D = fscanfMat(TMPDIR + '/MatrixNANINF.txt') | ![]() | ![]() |