Считайте данные из текстового файла; запишите в несколько выходных параметров
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 проигнорированы.
формат | Действие | Вывод |
|---|---|---|
Литералы (обычные символы) | Проигнорируйте соответствующие символы. Например, в файле, которому следовал | 'none' |
%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 | 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