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.

'none'

%d

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

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

%u

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

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

%f

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

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

%s

Считайте пробел или разделенный от разделителя текст.

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

%q

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

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

%c

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

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

%[...]

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

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

%[^...]

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

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

%*...
вместо %

Проигнорируйте соответствующие символы, заданные *.

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

W...
вместо %

Считайте ширину поля, заданную 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

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

Закон как разделители между элементами. Значение по умолчанию не ни один.

emptyvalue

Скаляр дважды

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

endofline

Отдельный символ или '\r\n'

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

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

expchars

ExponentCharacters

Значением по умолчанию является eEdD.

headerlines

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

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

whitespace

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

Вектор обработок символов как пробел. Значением по умолчанию является ' \b\t'.

' '
B
N
R
T

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

Примечание

Когда 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