Is the file open for
Пример 1
» fid=fopen('с:\examplel'.'а+')
fid =
3
» t= fread(3,[4.5])
t =
Empty matrix: 4-by-0
» ferror(3)
ans =
Is the file open for reading? . . .
-
frewind(fid) — устанавливает указатель позиции в начало файла с идентификатором fid;
-
status - fseekCfid,offset,origin) — устанавливает указатель в файле с идентификатором fid в заданную позицию — на байт, указанный параметром offset относительно origin.
Аргументы:
-
fid — идентификатор файла, возвращенный функцией fopen;
-
offset — значение, которое интерпретируется следующим образом:
-
offset>0 — изменяет позицию указателя на offset байт в направлении к концу файла;
-
offset=0 — не меняет позицию указателя;
-
offset<0 — изменяет позицию указателя на offset байт в направлении к началу файла;
-
origin — аргумент, принимающий следующие значения:
-
'bof или -1 — начало файла;
-
'cof' или 0 — текущая позиция указателя в файле;
-
' eof' или 1 — конец файла;
-
status — выходной аргумент. Принимает значение 0, если операция fseek произошла успешно, и -1 в противном случае. Если произошла ошибка, используйте функцию ferror для получения более подробной информации;
-
position=ftel I (fid) — возвращает позицию указателя для файла с идентификатором fid, полученным с помощью функции fopen. Выходной аргумент position — неотрицательное целое число, определяющее позицию указателя в байтах относительно начала файла. Если запрос был неудачным, position принимает значение -1. Используйте функцию ferror для отображения характера ошибки.
Примеры:
» f id-fopen('с:\example'.'a+')
fid =
3
» count = fwrite(3,magic(6))
count = 36
» ftelK3)
ans =
36
» frewind(3):ftell(3)
ans =
0
» fseek(3.12.0);ftell(3)
ans=
12
» feof(3)
ans =
0
» fclose(3)
ans =
0
-
s=sprintf(format,A,...) — форматирует данные в матрице А в формате, заданном параметром format, и создает из них строковую переменную s;
-
[s.errrmsg] = sprintfCformat,A....) — аналогична ранее описанной функции, но дополнительно возвращает строку ошибки errmsg, если ошибка имела место, или пустую строку в противном случае. Строка format определяет систему счисления, выравнивание, значащие цифры, ширину поля и другие атрибуты выходного формата. Она может содержать обычные символы наряду со спецификаторами, знаками выравнивания и т. д. Функция fprintf ведет себя, как и аналогичная функция fprintf 0 языка ANSI С, с некоторыми исключениями и расширениями.
Примеры:
» sprintf('*0.5g'.(l+sqrt(7))/4)
ans =
0.91144
» sprintfC
'%s',
'привет')
ans =
привет
Функция sscanf аналогична функции fscanf за исключением того, что она считывает данные из символьной переменной системы MATLAB, а не из файла.
-
А = sscanf (s,format) — считывает данные из символьной переменной s, преобразует их согласно значению format и создает на основе этих данных матрицу А. Параметр format определяет формат данных, которые нужно считать;
-
А = sscanf(s,format,size) — считывает количество данных, определенное параметром size, и преобразует их согласно строке format. Параметр size представляет собой аргумент, определяющий количество данных для чтения. Допустимы следующие значения:
-
n — чтение п элементов в вектор-столбец;
-
inf — чтение элементов до конца символьной переменной и помещение их в вектор-столбец, содержащий такое же количество элементов, как и в строковой переменной;
-
[m.n] — считывает столько элементов, сколько требуется для заполнения матрицы размера
тхп.
Заполнение происходит по столбцам. Величина п (но нет!) может принимать значение Inf.
-
[A,count,errmsg,nextindex] = sscanf(...) — считывает данные из символьной переменной s, преобразует их согласно значению format и возвращает в матрицу А. Параметр count — выходной.аргумент, который возвращает число успешно считанных элементов; errmsg — выходной аргумент, который возвращает строку ошибки, если ошибка произошла, и пустую строку в противном случае; nextindex — выходной аргумент, который содержит число, на единицу большее, чем количество символов в s.
Строка format состоит из обычных символов и спецификаторов. Спецификаторы указывают тип данных и включают в себя символ
%,
опцию ширины поля и символы формата. Пояснения можно найти в описании функции fscanf.
Содержание раздела