Считайте данные из текстового файла; запишите в несколько выходных параметров
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
формат
поддерживает подмножество спецификаторов преобразования и соглашения языка 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