Считывайте данные из текстового файла; запись в несколько выходов
Примечание
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 игнорируются.
формат | Действие | Выход |
|---|---|---|
Опечатки (обычные символы) | Игнорируйте соответствующие символы. Для примера в файле, который имеет | Ничего |
%d | Считайте значение целого числа со знаком. | Двойной массив |
%u | Считайте целое значение. | Двойной массив |
%f | Считайте значение с плавающей точкой. | Двойной массив |
%s | Считайте текст, разделенный пробелом или разделителем. | Массив ячеек из символьных векторов |
%q | Чтение текста с двойными кавычками, игнорирование кавычек. | Массив ячеек из символьных векторов |
%c | Считывайте символы, включая пустое пространство. | Символьный массив |
%[...] | Считайте самую длинную группу символов, содержащих символы, указанные в скобках. | Массив ячеек из символьных векторов |
%[^...] | Считайте самую длинную непустую группу символов, содержащих символы, не указанные в скобках. | Массив ячеек из символьных векторов |
%*... | Игнорируйте соответствующие символы, заданные | Нет выхода |
% w... | Считайте ширину поля, заданную |
[A,B,C,...] = textread(filename,format,N) считывает данные, повторно используя формат, заданный в format, N раз, где N - целое число, больше нуля. Если N меньше нуля, textread считывает весь файл.
[...] = textread(...,param,value,...) настраивает textread использование param/value пар, как указано в таблице ниже.
парам | значение | Действие | |
|---|---|---|---|
bufsize | Положительное целое число | Задает максимальную длину вектора символов в байтах. По умолчанию это | |
commentstyle | matlab | Игнорирует символы после | |
commentstyle | shell | Игнорирует символы после | |
commentstyle | c | Игнорирует символы между | |
commentstyle | c++ | Игнорирует символы после | |
delimiter | Один или несколько символов | Действовать как разделители между элементами. По умолчанию это нет. | |
emptyvalue | Скалярный двойной точности | Значение, заданное пустым камерам при чтении файлов с разделителями. Значение по умолчанию 0. | |
endofline | Один символ или | Символ, который обозначает конец линии. Значение по умолчанию определяется из файла | |
expchars | Символы экспоненты | По умолчанию это | |
headerlines | Положительное целое число | Игнорирует указанное количество линий в начале файла. | |
whitespace | Любой из списка ниже: | Рассматривает вектор символов как пустое пространство. По умолчанию это | |
' ' | Пространство | ||
Примечание
Когда textread читает последовательную серию whitespace значения, это рассматривает их как одно пустое пространство. Когда он читает последовательную серию delimiter значения, каждый из которых рассматривается как отдельный разделитель.
Первая линия 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'Первая линия 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.
Первая линия 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.
Для файлов с пустыми камерами используйте emptyvalue параметр. Предположим, что файл data.csv содержит:
1,2,3,4,,6 7,8,9,,11,12
Чтение файла осуществляется с помощью NaN чтобы заполнить все пустые камеры:
data = textread('data.csv', '', 'delimiter', ',', ...
'emptyvalue', NaN);Чтение файла fft.m в массив ячеек из векторов символов.
file = textread('fft.m', '%s', 'delimiter', '\n', ...
'whitespace', '');Если вы хотите сохранить начальные и конечные пространства в тексте, используйте whitespace параметр, как показано здесь:
textread('myfile.txt', '%s', 'whitespace', '')
ans =
' An example of preserving spaces 'fscanf | readmatrix | textscan