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 совпадает и преобразует группы символов из входов. Каждое входное поле определяется как группа непустых символов, которая простирается до следующего символа «пустое пространство» или «разделитель» или до максимальной ширины поля. Повторные разделители символов значительны, в то время как повторные символы белого пространства рассматриваются как единица.

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

формат

Действие

Выход

Опечатки

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

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

Ничего

%d

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

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

%u

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

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

%f

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

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

%s

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

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

%q

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

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

%c

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

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

%[...]

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

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

%[^...]

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

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

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

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

Нет выхода

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

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

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

По умолчанию это 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