exponenta event banner

strread

(Не рекомендуемый) отформатированные данные Рида от строки

strread не рекомендуется. Использование textscan вместо этого.

Описание

пример

A = strread(str) считывает числовые данные из вектора вводимого символа str в 1 N векторный A, где N равняется количеству разделенных от пробела чисел в str. Используйте этот синтаксис с векторами символов, содержащими числовые данные.

пример

[A,B,...] = strread(str) считывает числовые данные из входа str вектора символов в скалярные выходные переменные AB, и так далее. Количество выходных переменных должно равняться количеству разделенных от пробела чисел в str.

пример

[A,B,...] = strread(str,format) считывает данные из str в переменные AB, и так далее с помощью заданного формата. Количество выходных переменных должно быть равно количеству спецификаторов формата (таких как %s или %d) в format аргумент. Можно считать все данные в str к одной выходной переменной, пока вы используете только один спецификатор формата.

Форматы таблицы для strread перечисляют спецификаторы допустимого формата.

пример

[A,B,...] = strread(str,format,N) читает первый N значения от str как определено format вектор символов, где N целое число, больше, чем нуль. Если N -1, затем strread чтения все значения в str. Когда str содержит только числовые данные, можно установить format к пустому символьному вектору ('').

пример

[A,B,...] = strread(___,Name,Value) настраивает strread использование Name,Value аргументы. Когда str содержит только числовые данные, можно установить format к пустому символьному вектору ('').

Примеры

свернуть все

Создайте вектор символов, содержащий числа, разделенные пробелами. Используйте strread считывать числовые данные в числовой массив.

str = '0.41 8.24 3.57 6.24 9.27';
a = strread(str)
a = 1×5

    0.4100    8.2400    3.5700    6.2400    9.2700

Создайте вектор символов, содержащий числа, разделенные пробелами. Используйте strread считывать числовые данные в отдельные переменные.

str = '0.41 8.24 3.57 6.24 9.27';
[a, b, c, d, e] = strread(str)
a = 0.4100
b = 8.2400
c = 3.5700
d = 6.2400
e = 9.2700

Создайте вектор символов, содержащий числа, разделенные пробелами. Используйте strread к только для чтения первые три числа в векторе символов и формате данные как плавающая точка.

str = '0.41 8.24 3.57 6.24 9.27';
a = strread('0.41 8.24 3.57 6.24 9.27', '%4.2f', 3)
a = 3×1

    0.4100
    8.2400
    3.5700

Создайте вектор символов, содержащий числа, разделенные пробелами. Обрежьте данные до одной десятичной цифры путем определения формата %3.1f. Второй спецификатор, %*1d, говорит strread не читать в остающейся десятичной цифре

str = '0.41 8.24 3.57 6.24 9.27';
a = strread(str, '%3.1f %*1d')
a = 5×1

    0.4000
    8.2000
    3.5000
    6.2000
    9.2000

Создайте вектор символов, содержащий числа, разделенные пробелами. Считайте шесть чисел в две переменные Use спецификатор формата %f дважды применять то же форматирование к каждому выходу. Количество заданных форматов должно совпадать с количеством выходных параметров.

str = '0.41 8.24 3.57 6.24 9.27 3.29';
[a, b] = strread(str, '%f %f')
a = 3×1

    0.4100
    3.5700
    9.2700

b = 3×1

    8.2400
    6.2400
    3.2900

Создайте вектор символов, содержащий слова и числа, разделенные пробелами и с запятыми, разделяющими каждую пару номера слова.

str = 'Section 4, Page 7, Line 26';

Используйте strread считать текст в переменные и числовые данные другому. Вход '%s' формата определяет это, первый выход будет векторами символов, разделенными пробельными символами. '%d,' указывает, что второй выход будет значениями целого числа со знаком и игнорированием ',' 'characters'.

[name, value] = strread(str, '%s %d,')
name = 3x1 cell
    {'Section'}
    {'Page'   }
    {'Line'   }

value = 3×1

     4
     7
    26

Создайте вектор символов, содержащий слова и числа с запятыми, разделяющими каждую пару номера слова.

str = 'Section 4, Page 7, Line 26';

Считайте разграничивание вектора символов с запятыми вместо пробелов. Используйте '%s' формат, чтобы задать чтение вектора символов. Поскольку три выходных параметров заданы должны быть заданы, три формата.

[a, b, c] = strread(str,'%s %s %s', 'delimiter', ',')
a = 1x1 cell array
    {'Section 4'}

b = 1x1 cell array
    {'Page 7'}

c = 1x1 cell array
    {'Line 26'}

Входные параметры

свернуть все

Введите текст, заданный как символьный массив или строковый скаляр.

Типы данных: char | string

Выходной формат в виде символьного массива или строкового скаляра, который задает формат и тип данных выхода, определяет номер и типы возвращаемых аргументов. Количество возвращаемых аргументов должно совпадать с количеством спецификаторов преобразования в format символьный вектор.

strread функция продолжает читать str пока целый вектор символов не читается. Если существует меньше спецификаторов формата, чем в str существуют сущностиstrread повторно применяет спецификаторы формата, запускающиеся вначале.

format вектор символов поддерживает подмножество спецификаторов преобразования и соглашения языка C fscanf стандартная программа. Пробельные символы в format вектор символов проигнорирован.

Форматы для strread

Формат

Действие

Вывод

Литералы

(обычные символы)

Проигнорируйте соответствующие символы. Например, в векторе символов, который имеет Dept сопровождаемый номером (для номера отдела), чтобы пропустить Dept и только для чтения номер, используйте 'Dept' в format символьный вектор.

'none'

%d

Считайте значение целого числа со знаком.

Двойной массив

%u

Считайте целочисленное значение.

Двойной массив

%f

Считайте значение с плавающей точкой.

Двойной массив

%s

Читайте пробел разделил вектор символов.

Массив ячеек из символьных векторов

%q

Считайте двойной заключенный в кавычки вектор символов, игнорируя кавычки.

Массив ячеек из символьных векторов

%c

Считайте символы, включая пробел.

Массив символов

%[...]

Считайте самый длинный вектор символов, содержащий символы, заданные в скобках.

Массив ячеек из символьных векторов

%[^...]

Считайте самый длинный непустой вектор символов, содержащий символы, которые не заданы в скобках.

Массив ячеек из символьных векторов

%*...

Проигнорируйте символы после *.

Никакой выход

%w...

Считайте ширину поля, заданную w. %f формат поддерживает %w.pf, где w ширина поля и p точность.

 

Типы данных: char | string

Количество значений в виде целого числа, больше, чем нуль. Если N -1, затем strread найдет все возможные значения в str.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: strread(str,'','whitespace','\t')

Пробельные символы в виде вектора символов или массива строк. strread символы обработок заданы вводимыми символами как пробел. Значением по умолчанию является '\b\r\n\t'.

СимволПробельный символ
\bКлавиша Backspace
\nНовая строка
\rВозврат каретки
\tГоризонтальная табуляция
\\Обратная косая черта
%%Знак процента
''Одна кавычка

Символ-разделитель в виде вектора символов или счетчика строки, содержащего разделитель. Значением по умолчанию являются один или несколько пробельных символов. Например, если вектор символов str использует точку с запятой в качестве разделителя, задайте 'delimiter' как ';'.

Символы экспоненты в виде вектора символов или строкового скаляра, содержащего символы, которые обработаны как экспоненты, такие как 'e' в номере 4.3e12. Значением по умолчанию является 'eEdD'.

Buffer size в виде положительного целого числа, содержащего максимальную длину вектора символов в байтах. Значением по умолчанию является 4095.

Прокомментируйте стиль в виде вектора символов или строкового скаляра, содержащего стиль символа что strread использование, чтобы определять комментарии. strread игнорирует символы, определяемые соответствующим символом.

СтильДействие
'matlab'Игнорирует символы после %.
'shell'Игнорирует символы после #.
'c'Игнорирует символы между /* and */.
'c++'Игнорирует символы после //.

Значение, чтобы возвратиться для пустых числовых полей в разграниченных файлах в виде числового скаляра

Советы

  • Если вы отключаете вектор вводимого символа с символом новой строки (\n), strread возвращает массивы равного размера путем дополнения массивов меньшего размера с emptyvalue символ:

    [A,B,C] = strread(sprintf('5,7,1,9\n'),'%d%d%d', ...
                 'delimiter', ',', 'emptyvalue',NaN)
    A =
         5
         9
    B =
         7
       NaN
    C =
         1
       NaN

    Если вы удаляете \n от вектора вводимого символа из этого примера, массив A продолжает быть 2 1 массив, но B и C теперь 1 на 1.

Смотрите также

|

Введен в R2006a