Позиционирование файла
- 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.160022.000045.0000n =4err=next =16