exponenta event banner

textread

Считывание данных из текстового файла; запись на несколько выходов

Примечание

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

Синтаксис

[A,B,C,...] = textread(filename,format)
[A,B,C,...] = textread(filename,format,N)
[...] = textread(...,param,value,...)

Описание

[A,B,C,...] = textread(filename,format) считывает данные из файла filename в переменные A, B, Cи так далее, используя указанное format, пока не будет прочитан весь файл. Определить filename и format вводится в виде векторов символов или строковых скаляров. textread полезен для чтения текстовых файлов с известным форматом. textread обрабатывает файлы фиксированного и свободного формата.

Примечание

При чтении больших текстовых файлов, чтении из определенной точки в файле или чтении данных файла в массив ячеек, а не в несколько выходов, возможно, предпочтительнее использовать textscan функция.

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

format ввод, заданный как символьный вектор или строковый скаляр, определяет количество и типы возвращаемых аргументов. Число возвращаемых аргументов - это количество элементов, указанных содержимым format. format поддерживает подмножество спецификаторов преобразования и соглашений языка C fscanf рутина. Значения для format перечислены в таблице ниже. Символы пробела в format игнорируются.

формат

Действие

Продукция

Опечатки

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

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

Ничего

%d

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

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

%u

Считывание целого значения.

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

%f

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

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

%s

Чтение текста, разделенного пробелом или разделителем.

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

%q

Читать текст с двойными кавычками, игнорируя кавычки.

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

%c

Чтение символов, включая пробел.

Символьный массив

%[...]

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

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

%[^...]

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

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

%*...
instead of %

Игнорировать соответствующие символы, указанные *.

Нет выходных данных

%w...
instead of %

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

 

[A,B,C,...] = textread(filename,format,N) считывает данные, повторно используя формат, указанный в format, N времена, где N является целым числом, большим нуля. Если N меньше нуля, textread читает весь файл.

[...] = textread(...,param,value,...) настраивает textread использование param/value пар, как указано в таблице ниже.

парам

стоимость

Действие

bufsize

Положительное целое число

Указывает максимальную длину символьного вектора в байтах. По умолчанию: 4095.

commentstylematlab

Игнорирует символы после %.

commentstyleshell

Игнорирует символы после #.

commentstylec

Игнорирует символы между /* и */.

commentstylec++

Игнорирует символы после //.

delimiter

Один или несколько символов

Действовать как разделители между элементами. Значение по умолчанию - none.

emptyvalue

Скалярный двойник

Значение, присваиваемое пустым ячейкам при чтении файлов с разделителями. Значение по умолчанию - 0.

endofline

Одиночный символ или '\r\n'

Символ, обозначающий конец строки.

По умолчанию определяется из файла

expchars

Символы экспоненты

По умолчанию: eEdD.

headerlines

Положительное целое число

Игнорирует указанное число строк в начале файла.

whitespace

Любое из списка ниже:

Рассматривает вектор символов как пробел. По умолчанию: ' \b\t'.

' '
\b
\n
\r
\t

Пространство
Клавиша Backspace
Newline
Возврат каретки
Горизонтальная вкладка

Примечание

Когда textread считывает последовательную серию whitespace значения, они рассматриваются как один пробел. При чтении последовательных серий delimiter значения, они обрабатываются как отдельные разделители.

Примеры

Пример 1 - Чтение всех полей в файле свободного формата с использованием%

Первая строка mydata.dat является

Sally    Level1 12.34 45 Yes

Прочитайте первую строку файла как файл свободного формата с помощью % формат.

[names, types, x, y, answer] = textread('mydata.dat', ...
'%s %s %f %d %s', 1)

прибыль

names = 
    'Sally'
types = 
    'Level1'
x =
  12.34000000000000
y =
    45
answer = 
    'Yes'

Пример 2. Считывание в виде файла фиксированного формата с игнорированием значения с плавающей запятой

Первая строка mydata.dat является

Sally    Level1 12.34 45 Yes

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

[names, types, y, answer] = textread('mydata.dat', ...
'%9c %6s %*f %2d %3s', 1)

прибыль

names =
Sally    
types = 
    'Level1'
y =
    45
answer = 
    'Yes'

%*f в format причины textread игнорировать значение с плавающей запятой, в данном случае 12.34.

Пример 3 - Чтение с использованием литерала для игнорирования совпадающих символов

Первая строка mydata.dat является

Sally    Type1 12.34 45 Yes

Прочитайте первую строку файла, игнорируя символы Type во втором поле.

[names, typenum, x, y, answer] = textread('mydata.dat', ...
'%s Type%d %f %d %s', 1)

прибыль

names = 
    'Sally'
typenum =
    1
x =
  12.34000000000000
y =
    45
answer = 
    'Yes'

Определение Type%d в format вызывает символы Type во втором поле, которое следует игнорировать, в то время как остальная часть второго поля считывается как целое число со знаком, в данном случае 1.

Пример 4 - Укажите значение для заполнения пустых ячеек

Для файлов с пустыми ячейками используйте emptyvalue параметр. Предположим, что файл data.csv содержит:

1,2,3,4,,6
7,8,9,,11,12

Чтение файла с помощью NaN для заполнения пустых ячеек:

data = textread('data.csv', '', 'delimiter', ',', ... 
                'emptyvalue', NaN);

Пример 5 - Считывание файла в массив ячеек символьных векторов

Прочитать файл fft.m в массив ячеек символьных векторов.

file = textread('fft.m', '%s', 'delimiter', '\n', ...
                'whitespace', '');

Совет

Если требуется сохранить начальные и конечные пробелы в тексте, используйте whitespace как показано здесь:

textread('myfile.txt', '%s', 'whitespace', '')
ans = 
    '   An  example      of preserving    spaces      '

См. также

| |

Представлен до R2006a