# fscanfMat

reads a matrix from a text file

## Calling Sequence

    M = fscanfMat(filename[, fmt]);
                [M, text] = fscanfMat(filename [, fmt]);

## Arguments

filename

  a character string giving the name of the file to be scanned.

fmt

  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).

M

  output variable. A matrix of real numbers.

text

  output variable. A column vector of strings. It is comments in the beginning of the file `filename`.

## Description

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 formated file, the csvRead function is recommended.

## Examples

                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')

## See Also

- scanf_conversion
- mclose
- meof
- mfprintf
- fprintfMat
- mfscanf
- mget
- mgetstr
- mopen
- mprintf
- mput
- mputstr
- mseek
- mtell
- mdelete
- csvRead