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


Позиционирование файла - часть 3


Примеры:

» 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.

    Пример:

    » s = '4.83 3.16 22 45';

    » [A.n,err,next] = sscanf(s. '%f')

    А =

    4.8300 - 3.1600

    22.0000

    45.0000 

    n =

    еrr=

    next = 

    16

     




    Начало  Назад  Вперед