# fscanfMat

считывает матрицу из текстового файла

## Последовательность вызова

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

## Аргументы

filename

  символьная строка, указывающая имя файла, который необходимо просканировать.

fmt

  символьная строка, указывающая формат. Это необязательный параметр. Значение по умолчанию `"%lg"`.

  Поддерживаемый формат: `%[width].[precision]type` или `%type`, где:

  `width`: необязательное число, которое определяет минимальное количество знаков на выходе;

  `precision`: необязательное число, которое определяет максимальное количество знаков, выводимых для всех или части выходных полей, или минимальное количество цифр, выводимых для целочисленных значений.

  `type`: lf, lg, d, i, e, f, g (см. scanf_conversion).

M

  выходная переменная. Матрица вещественных чисел.

text

  выходная переменная. Вектор-столбец строк. Это комментарии в начале файла с именем `filename`.

## Описание

Функция `fscanfMat` используется для считывания вещественной матрицы из текстового файла с именем `filename`. Первые нечисловые строчки файла возвращаются в переменной `text`, если это запрошено, а все оставшиеся строчки должны иметь одинаковое количество столбцов (разделителем столбцов могут быть либо пробелы либо символы табуляции, если же есть и те и другие, то, по умолчанию, будут выбраны пробелы). Количество столбцов матрицы должно соответствовать количеству столбцов, обнаруженных в файле `filename`, а количество строк получается при обнаружении конца файла (EOF) во входном файле. Эта функция может быть использована для чтения числовых данных, сохранённых с помощью функции `fprintfMat` (по умолчанию в качестве разделителя используется пробел).

`fscanfMat` поддерживает файлы с кодировкой ANSI/ASCII и UTF-8.

Для чтения CSV-файлов, рекомендуется функция csvRead.

## Примеры

                fd = mopen(TMPDIR + "/Mat", "w");
                mfprintf(fd, "Какой-то текст.....\n");
                mfprintf(fd, "Ещё какой-то текст...\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')

## Смотрите также

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