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