Позиционирование файла
- s=sprintf(format,A,…) – форматирует данные в матрице А в формате, заданном параметром format, и создает из них строковую переменную s;
- [s.errrmsg] = sprintfCformat,A….) – аналогична ранее описанной функции, но дополнительно возвращает строку ошибки errmsg, если ошибка имела место, или пустую строку в противном случае. Строка format определяет систему счисления, выравнивание, значащие цифры, ширину поля и другие атрибуты выходного формата. Она может содержать обычные символы наряду со спецификаторами, знаками выравнивания и т. д. Функция fprintf ведет себя, как и аналогичная функция fprintf 0 языка ANSI С, с некоторыми исключениями и расширениями.
Примеры:
>
>
sprintf(
'*0.5g'
.(
1
+
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.
Пример:
>
>
s
=
'4.83 3.16 22 45'
;
>
>
[A.n,err,next]
=
sscanf(s.
'%f'
)
A
=
4.8300
-
3.1600
22.0000
45.0000
n
=
4
err
=
next
=
16