Считайте данные из текстового файла; запишите в несколько выходных параметров
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 в переменные ABC, и так далее, с помощью заданного format, пока целый файл не читается. Задайте filename и format входные параметры как векторы символов или строковые скаляры. textread полезно для чтения текстовых файлов с известным форматом. textread указатели и файлы фиксированного и свободного формата.
При чтении файлов крупного текста, чтении из отдельного момента в файле или чтении данных о файле в массив ячеек, а не несколько выходных параметров, вы можете предпочесть использовать textscan функция.
textread соответствия и преобразуют группы символов от входа. Каждое поле ввода задано как группа непробельных символов, которая расширяет к следующему пробелу или символу-разделителю, или к максимальной ширине поля. Повторные символы-разделители являются значительными, в то время как повторные пробельные символы обработаны как один.
format введите в виде вектора символов или строкового скаляра, определяет номер и типы возвращаемых аргументов. Количество возвращаемых аргументов является количеством элементов, обозначенных содержимым formatформат поддерживает подмножество спецификаторов преобразования и соглашения языка C fscanf стандартная программа. Значения для format перечислены в таблице ниже. Пробельные символы в format проигнорированы.
формат | Действие | Вывод |
|---|---|---|
Литералы (обычные символы) | Проигнорируйте соответствующие символы. Например, в файле, который имеет | 'none' |
%d | Считайте значение целого числа со знаком. | Двойной массив |
%u | Считайте целочисленное значение. | Двойной массив |
%f | Считайте значение с плавающей точкой. | Двойной массив |
%s | Считайте пробел или разделенный от разделителя текст. | Массив ячеек из символьных векторов |
%q | Считайте дважды заключенный в кавычки текст, игнорируя кавычки. | Массив ячеек из символьных векторов |
%c | Считайте символы, включая пробел. | Массив символов |
%[...] | Считайте самую длинную группу символов, содержащих символы, заданные в скобках. | Массив ячеек из символьных векторов |
%[^...] | Считайте самую длинную непустую группу символов, содержащих символы, которые не заданы в скобках. | Массив ячеек из символьных векторов |
%*... | Проигнорируйте соответствующие символы, заданные | Никакой выход |
W... | Считайте ширину поля, заданную |
[A,B,C,...] = textread(filename,format,N) считывает данные, снова используя формат, заданный в formatN времена, где N целое число, больше, чем нуль. Если N меньше, чем нуль, textread читает целый файл.
[...] = textread(...,param,value,...) настраивает textread использование param/value пары, как перечисленный в таблице ниже.
параметрический усилитель | значение | Действие | |
|---|---|---|---|
bufsize | Положительное целое число | Задает максимальную длину вектора символов, в байтах. Значением по умолчанию является | |
commentstyle | matlab | Игнорирует символы после | |
commentstyle | shell | Игнорирует символы после | |
commentstyle | c | Игнорирует символы между | |
commentstyle | c++ | Игнорирует символы после | |
delimiter | Один или несколько символов | Закон как разделители между элементами. Значение по умолчанию не ни один. | |
emptyvalue | Скаляр дважды | Значение, данное пустым ячейкам, когда чтение разграничило файлы. Значение по умолчанию 0. | |
endofline | Отдельный символ или | Символ, который обозначает конец линии. Значение по умолчанию определяется из файла | |
expchars | ExponentCharacters | Значением по умолчанию является | |
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