Иллюстрированный самоучитель по MatLab

Позиционирование файла

  • 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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.