Считайте отформатированные данные из текстового файла или строки
C = textscan(fileID,formatSpec)
C = textscan(fileID,formatSpec,N)
C = textscan(chr,formatSpec)
C = textscan(chr,formatSpec,N)
C = textscan(___,Name,Value)
[C,position]
= textscan(___)
считывает данные из открытого текстового файла в массив ячеек, C
= textscan(fileID
,formatSpec
)C
. Текстовый файл обозначается идентификатором файла, fileID
. Используйте fopen
, чтобы открыть файл и получить значение fileID
. Когда вы закончили читать из файла, закрываете файл путем вызова fclose(fileID)
.
textscan
пытается совпадать с данными в файле к спецификатору преобразования в formatSpec
. Функция textscan
повторно применяет formatSpec
в целом файле и останавливается, когда это не может совпадать с formatSpec
к данным.
данные о файле чтений с помощью времен C
= textscan(fileID
,formatSpec
,N
)N
formatSpec
, где N
является положительным целым числом. Чтобы считать дополнительные данные из файла после циклов N
, вызовите textscan
снова с помощью исходного fileID
. Если вы возобновляете текстовое сканирование файла путем вызова textscan
с тем же идентификатором файла (fileID
), то textscan
автоматически продолжает читать в точке, где это отключило последнее чтение.
читает текст из вектора символов C
= textscan(chr
,formatSpec
)chr
в массив ячеек C
. При чтении текста из вектора символов повторенные вызовы textscan
перезапускают сканирование с начала каждый раз. Чтобы перезапустить сканирование от последней позиции, запросите position
вывод.
textscan
пытается совпадать с данными в векторе символов chr
к формату, заданному в formatSpec
.
использует времена C
= textscan(chr
,formatSpec
,N
)N
formatSpec
, где N
является положительным целым числом.
задает опции с помощью одного или нескольких аргументов пары C
= textscan(___,Name,Value
)Name,Value
, в дополнение к любому из входных параметров в предыдущих синтаксисах.
Считайте вектор символов, содержащий числа с плавающей запятой.
chr = '0.41 8.24 3.57 6.24 9.27'; C = textscan(chr,'%f');
Спецификатор '%f'
в formatSpec
говорит textscan
совпадать с каждым полем в chr
к числу с плавающей запятой с двойной точностью.
Отобразите содержимое массива ячеек C
.
celldisp(C)
C{1} = 0.4100 8.2400 3.5700 6.2400 9.2700
Считайте тот же вектор символов и обрежьте каждое значение до одной десятичной цифры.
C = textscan(chr,'%3.1f %*1d');
Спецификатор %3.1f
указывает на ширину поля 3 цифр и точность 1. Функция textscan
читает в общей сложности 3 цифры, включая десятичную точку и 1 цифру после десятичной точки. Спецификатор, %*1d
, говорит textscan
пропускать остающуюся цифру.
Отобразите содержимое массива ячеек C
.
celldisp(C)
C{1} = 0.4000 8.2000 3.5000 6.2000 9.2000
Загрузите файл данных и считайте каждый столбец с соответствующим типом.
Файл загрузки scan1.dat
и предварительный просмотр его содержимое в текстовом редакторе. Снимок экрана показывают ниже.
filename = fullfile(matlabroot,'examples','matlab','scan1.dat');
Откройте файл и считайте каждый столбец с соответствующим спецификатором преобразования. textscan
возвращает массив ячеек 1-by-9
C
.
fileID = fopen(filename); C = textscan(fileID,'%s %s %f32 %d8 %u %f %f %s %f'); fclose(fileID); whos C
Name Size Bytes Class Attributes C 1x9 2249 cell
Просмотрите тип данных MATLAB® каждой из ячеек в C
.
C
C = 1x9 cell array
Columns 1 through 5
{3x1 cell} {3x1 cell} {3x1 single} {3x1 int8} {3x1 uint32}
Columns 6 through 9
{3x1 double} {3x1 double} {3x1 cell} {3x1 double}
Исследуйте отдельные записи. Заметьте, что C{1}
и C{2}
являются массивами ячеек. C{5}
имеет тип данных uint32
, таким образом, первые два элемента C{5}
являются максимальными значениями для 32
битное беззнаковое целое или intmax('uint32')
.
celldisp(C)
C{1}{1} = 09/12/2005 C{1}{2} = 10/12/2005 C{1}{3} = 11/12/2005 C{2}{1} = Level1 C{2}{2} = Level2 C{2}{3} = Level3 C{3} = 12.3400 23.5400 34.9000 C{4} = 45 60 12 C{5} = 4294967295 4294967295 200000 C{6} = Inf -Inf 10 C{7} = NaN 0.0010 100.0000 C{8}{1} = Yes C{8}{2} = No C{8}{3} = No C{9} = 5.1000 + 3.0000i 2.2000 - 0.5000i 3.1000 + 0.1000i
Удалите буквенный текст 'Level'
из каждого поля во втором столбце данных из предыдущего примера. Предварительный просмотр файла показывают ниже.
Откройте файл и совпадайте с буквенным текстом во входе formatSpec.
filename = fullfile(matlabroot,'examples','matlab','scan1.dat'); fileID = fopen(filename); C = textscan(fileID,'%s Level%d %f32 %d8 %u %f %f %s %f'); fclose(fileID); C{2}
ans = 3x1 int32 column vector
1
2
3
Просмотрите тип данных MATLAB® второй ячейки в C
. Вторая ячейка массива ячеек 1-by-9
, C
, имеет теперь тип данных int32
.
disp( class(C{2}) )
int32
Считайте первый столбец файла в предыдущем примере в массив ячеек, пропустив остальную часть строки.
filename = fullfile(matlabroot,'examples','matlab','scan1.dat'); fileID = fopen(filename); dates = textscan(fileID,'%s %*[^\n]'); fclose(fileID); dates{1}
ans = 3x1 cell array
{'09/12/2005'}
{'10/12/2005'}
{'11/12/2005'}
textscan
возвращает массив ячеек даты.
Загрузите файл data.csv
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Заметьте, что файл содержит данные, разделенные запятыми, и также содержит пустые значения.
Считайте файл, преобразовав пустые ячейки в -Inf
.
filename = fullfile(matlabroot,'examples','matlab','data.csv'); fileID = fopen(filename); C = textscan(fileID,'%f %f %f %f %u8 %f',... 'Delimiter',',','EmptyValue',-Inf); fclose(fileID); column4 = C{4}, column5 = C{5}
column4 = 2×1
4
-Inf
column5 = 2x1 uint8 column vector
0
11
textscan
возвращает массив ячеек 1-by-6
, C
. Функция textscan
преобразовывает пустое значение в C{4}
к -Inf
, где C{4}
сопоставлен с форматом с плавающей точкой. Поскольку MATLAB® представляет беззнаковое целое -Inf
как 0
, textscan
преобразовывает пустое значение в C{5}
к 0
, и не -Inf
.
Загрузите файл data2.csv
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Заметьте, что файл содержит данные, которые могут быть интерпретированы как комментарии и другие записи, такие как 'NA'
или 'na'
, который может указать на пустые поля.
filename = fullfile(matlabroot,'examples','matlab','data2.csv');
Определяйте вход, который textscan
должен обработать как комментарии или пустые значения и отсканировать данные в C
.
fileID = fopen(filename); C = textscan(fileID,'%s %n %n %n %n','Delimiter',',',... 'TreatAsEmpty',{'NA','na'},'CommentStyle','//'); fclose(fileID);
Отобразите вывод.
celldisp(C)
C{1}{1} = abc C{1}{2} = def C{2} = 2 NaN C{3} = NaN 5 C{4} = 3 6 C{5} = 4 7
Загрузите файл data3.csv
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Заметьте, что файл содержит повторенные разделители.
filename = fullfile(matlabroot,'examples','matlab','data3.csv');
Чтобы обработать повторные запятые как один разделитель, используйте параметр MultipleDelimsAsOne
и установите значение к 1
(true
).
fileID = fopen(filename); C = textscan(fileID,'%f %f %f %f','Delimiter',',',... 'MultipleDelimsAsOne',1); fclose(fileID); celldisp(C)
C{1} = 1 5 C{2} = 2 6 C{3} = 3 7 C{4} = 4 8
Загрузите файл данных grades.txt
для этого примера и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Заметьте, что файл содержит повторенные разделители.
filename = fullfile(matlabroot,'examples','matlab','grades.txt');
Считайте заголовки столбцов с помощью формата '%s'
четыре раза.
fileID = fopen(filename); formatSpec = '%s'; N = 4; C_text = textscan(fileID,formatSpec,N,'Delimiter','|');
Считайте числовые данные в файле.
C_data0 = textscan(fileID,'%d %f %f %f')
C_data0 = 1x4 cell array
{4x1 int32} {4x1 double} {4x1 double} {4x1 double}
Значением по умолчанию для CollectOutput
является 0
(false
), таким образом, textscan
возвращает каждый столбец числовых данных в отдельном массиве.
Установите индикатор позиции в файле на начало файла.
frewind(fileID);
Перечитайте файл и установите CollectOutput на 1 (TRUE) собирать последовательные столбцы того же класса в единый массив. Можно использовать функцию repmat
, чтобы указать, что спецификатор преобразования %f
должен появиться три раза. Этот метод полезен, когда формат много раз повторяется.
C_text = textscan(fileID,'%s',N,'Delimiter','|'); C_data1 = textscan(fileID,['%d',repmat('%f',[1,3])],'CollectOutput',1)
C_data1 = 1x2 cell array
{4x1 int32} {4x3 double}
Экзаменационные отметки, которые являются все двойными, собраны в сингл 4 3 массив.
Закройте файл.
fclose(fileID);
Считайте первые и последние столбцы данных из текстового файла. Пропустите столбец текста и столбец целочисленных данных.
Загрузите файл names.txt
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Заметьте, что файл содержит два столбца заключенного в кавычки текста, сопровождаемого столбцом целых чисел, и наконец столбцом чисел с плавающей точкой.
filename = fullfile(matlabroot,'examples','matlab','names.txt');
Считайте первые и последние столбцы данных в файле. Используйте спецификатор преобразования, %q
, чтобы считать текст, заключенный двойными кавычками ("
). %*q
пропускает заключенный в кавычки текст, %*d
пропускает целочисленное поле, и %f
читает число с плавающей запятой. Задайте разделитель запятой с помощью аргумента пары "имя-значение" 'Delimiter'
.
fileID = fopen(filename,'r'); C = textscan(fileID,'%q %*q %*d %f','Delimiter',','); fclose(fileID);
Отобразите вывод. textscan
возвращает массив ячеек C
, куда двойные кавычки, заключающие текст, удалены.
celldisp(C)
C{1}{1} = Smith, J. C{1}{2} = Bates, G. C{1}{3} = Curie, M. C{1}{4} = Murray, G. C{1}{5} = Brown, K. C{2} = 71.1000 69.3000 64.1000 133.0000 64.9000
Загрузите файл german_dates.txt
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Заметьте, что первый столбец значений содержит даты на немецком языке, и вторые и третьи столбцы являются числовыми значениями.
filename = fullfile(matlabroot,'examples','matlab','german_dates.txt');
Откройте файл. Задайте схему кодировки символов, сопоставленную с файлом как последний вход к fopen
.
fileID = fopen(filename,'r','n','ISO-8859-15');
Считайте файл. Задайте формат дат в файле с помощью спецификатора %{dd % MMMM yyyy}D
. Задайте локаль дат с помощью аргумента пары "имя-значение" DateLocale
.
C = textscan(fileID,'%{dd MMMM yyyy}D %f %f',... 'DateLocale','de_DE','Delimiter',','); fclose(fileID);
Просмотрите содержимое первой ячейки в C. Даты отображают на языке использование MATLAB в зависимости от вашей системной локали.
C{1}
ans = 3x1 datetime array
01 January 2014
01 February 2014
01 March 2014
Используйте sprintf
, чтобы преобразовать escape-последовательности не по умолчанию в ваших данных.
Создайте текст, который включает символ перевода страницы, \f
. Затем чтобы считать текст с помощью textscan
, вызовите sprintf
, чтобы явным образом преобразовать перевод формата.
lyric = sprintf('Blackbird\fsinging\fin\fthe\fdead\fof\fnight'); C = textscan(lyric,'%s','delimiter',sprintf('\f')); C{1}
ans = 7x1 cell array
{'Blackbird'}
{'singing' }
{'in' }
{'the' }
{'dead' }
{'of' }
{'night' }
textscan
возвращает массив ячеек, C
.
Продолжите сканировать от положения кроме начала.
Если вы возобновляете сканирование текста, textscan
читает с начала каждый раз. Чтобы возобновить сканирование от любого другого положения, используйте синтаксис 2D выходного аргумента в своем начальном вызове textscan
.
Например, создайте вектор символов под названием lyric
. Считайте первое слово вектора символов, и затем возобновите сканирование.
lyric = 'Blackbird singing in the dead of night'; [firstword,pos] = textscan(lyric,'%9c',1); lastpart = textscan(lyric(pos+1:end),'%s');
fileID
— Идентификатор файлаИдентификатор файла открытого текстового файла, заданного как номер. Прежде, чем считать файл с textscan
, необходимо использовать fopen
, чтобы открыть файл и получить fileID
.
Типы данных: double
formatSpec
Формат полей данныхФормат полей данных, заданных как вектор символов или строка одного или нескольких спецификаторов преобразования. Когда textscan
читает вход, он пытается совпадать с данными к формату, заданному в formatSpec
. Если textscan
не удается совпадать с полем данных, он прекращает читать и возвращает все полевое чтение перед отказом.
Количество спецификаторов преобразования определяет количество ячеек в выходном массиве, C
.
Numeric Fields
Эта таблица приводит доступные спецификаторы преобразования для числовых входных параметров.
Числовой входной тип | Спецификатор преобразования | Выходной класс |
---|---|---|
Целое число, подписанное | %d | int32 |
%d8 | int8 | |
%d16 | int16 | |
%d32 | int32 | |
%d64 | int64 | |
Целое число, без знака | %u | uint32 |
%u8 | uint8 | |
%u16 | uint16 | |
%u32 | uint32 | |
%u64 | uint64 | |
Число с плавающей запятой | %f | double |
%f32 | single | |
%f64 | double | |
%n | double |
Nonnumeric Fields
Эта таблица приводит доступные спецификаторы преобразования для входных параметров, которые включают нечисловые символы.
Нечисловой входной тип | Спецификатор преобразования | Детали |
---|---|---|
Символ | %c | Считайте любой отдельный символ, включая разделитель. |
Текстовый массив | %s | Читайте как массив ячеек из символьных векторов. |
%q | Читайте как массив ячеек из символьных векторов. Если текст начинается с двойной кавычки ( Пример: | |
Даты и время | %D | Считайте тот же путь как |
| Считайте тот же путь как Для получения дополнительной информации о форматах отображения datetime, смотрите свойство Пример: | |
Длительность | %T |
Считайте тот же путь как |
| Считайте тот же путь как Для получения дополнительной информации о форматах отображения длительности, смотрите свойство Пример: | |
Категория | %C | Считайте тот же путь как |
Сопоставление с образцом | %[...] | Читайте как массив ячеек из символьных векторов, символы в скобках до первого символа несоответствия. Чтобы включать Пример: |
%[^...] | Исключите символы в скобках, читая до первого символа соответствия. Чтобы исключить Пример: |
Optional Operators
Спецификаторы преобразования в formatSpec
могут включать дополнительные операторы, которые появляются в следующем порядке (включает пробелы для ясности):
Дополнительные операторы включают:
Поля и символы, чтобы проигнорировать
textscan
читает все символы в вашем файле в последовательности, если вы не говорите ему игнорировать конкретное поле или фрагмент поля.
Вставьте символ звездочки (*) после символа процента (%), чтобы пропустить поле или фрагмент символьного поля.
Оператор | Меры приняты |
---|---|
| Пропустите поле. Пример: |
| Пропустите до символов Пример: |
| Пропустите символы |
Ширина поля
textscan
читает количество символов или цифр, заданных шириной поля или точностью, или до первого разделителя, какой бы ни на первом месте. Десятичная точка, знак (+
или -
), символ экспоненты и цифры в числовой экспоненте считается как символы и цифры в ширине поля. Для комплексных чисел ширина поля относится к отдельным ширинам действительной части и мнимой части. Для мнимой части ширина поля включает + или −, но не i
или j
. Задайте ширину поля путем вставки номера после символа процента (%) в спецификаторе преобразования.
Пример: %5f
читает '123.456'
как 123.4
.
Пример: %5c
читает 'abcdefg'
как 'abcde'
.
Когда оператор ширины поля используется с отдельными символами (%c
), textscan
также читает разделитель, пробел и символы конца строки.
Пример: %7c
читает 7 символов, включая пробел, so'Day and night'
чтения как 'Day and'
.
Точность
Для чисел с плавающей запятой (%n
, %f
, %f32
, %f64
), можно задать количество десятичных цифр, чтобы читать.
Пример: %7.2f
читает '123.456'
как 123.45
.
Буквенный текст, чтобы проигнорировать
textscan
игнорирует текст, добавленный к спецификатору преобразования formatSpec
.
Пример: Level%u8
читает 'Level1'
как 1
.
Пример: %u8Step
читает '2Step'
как 2
.
Типы данных: char | string
N
Число раз, чтобы применить formatSpec
Inf
(значение по умолчанию) | положительное целое числоЧисло раз, чтобы применить formatSpec
, заданный как положительное целое число.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
chr
Введите текстВведите текст, чтобы читать.
Типы данных: char | string
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
C = textscan(fileID,formatSpec,'HeaderLines',3,'Delimiter',',')
пропускает первые три строки данных, и затем считывает остающиеся данные, обрабатывая запятые как разделитель.Имена не являются чувствительными к регистру.
'CollectOutput'
— Logical, определяющий конкатенацию данныхfalse
(значение по умолчанию) | true
Логический индикатор, определяющий конкатенацию данных, заданную как пара, разделенная запятой, состоящая из 'CollectOutput'
и или true
или false
. Если true
, то функция импорта конкатенирует последовательные выходные ячейки того же основного класса MATLAB® в единый массив.
CommentStyle
Символы, определяющие текст проигнорироватьСимволы, определяющие текст проигнорировать, заданный как пара, разделенная запятой, состоящая из 'CommentStyle'
и вектора символов, массива ячеек из символьных векторов, строки или массива строк.
Например, задайте символ, такой как '%'
, чтобы проигнорировать текст после символа на той же строке. Задайте массив ячеек двух векторов символов, таких как {'/*','*/'}
, чтобы проигнорировать любой текст между теми последовательностями.
MATLAB проверяет на комментарии только в начале каждого поля, не в поле.
Пример: 'CommentStyle',{'/*','*/'}
Типы данных: char | string
'DateLocale'
Локаль для чтения датЛокаль для чтения датируется, заданный как пара, разделенная запятой, состоящая из 'DateLocale'
и вектора символов в форме
, где xx_YY
xx
является строчный ISO 639-1 двухбуквенный код, который задает язык, и YY
является прописной альфой ISO 3166-1 2 кода, которые задают страну. Для списка общих ценностей для локали смотрите аргумент пары "имя-значение" Locale
для функции datetime
.
Используйте DateLocale
, чтобы задать локаль, в которой textscan должен интерпретировать месяц и день недельных имен и сокращений при чтении текста как дат с помощью спецификатора формата %D
.
Пример: 'DateLocale','ja_JP'
'Delimiter'
— Символы разделителя полейСимволы разделителя полей, заданные как пара, разделенная запятой, состоящая из 'Delimiter'
и вектора символов или массива ячеек из символьных векторов. Задайте несколько разделителей в массиве ячеек из символьных векторов.
Пример: 'Delimiter',{';','*'}
textscan
интерпретирует повторенные символы-разделители как отдельные разделители и возвращает пустое значение к выходной ячейке.
В каждой строке данных разделитель полей по умолчанию является пробелом. Пробел может быть любой комбинацией пробела (' '
), клавиша Backspace ('\b'
) или вкладка ('\t'
) символы. Если вы не задаете разделитель, то:
символы-разделители совпадают с пробельными символами. Пробельными символами по умолчанию является ' '
, '\b'
и '\t'
. Используйте аргумент пары "имя-значение" 'Whitespace'
, чтобы задать альтернативные пробельные символы.
textscan
интерпретирует повторенные пробельные символы как один разделитель.
Когда вы задаете одну из следующих escape-последовательностей как разделитель, textscan
преобразовывает ту последовательность в соответствующий управляющий символ:
\b | Клавиша Backspace |
\n | Новая строка |
\r | Возврат каретки |
\t | Вкладка |
\\ | Наклонная черта влево (\ ) |
Типы данных: char | string
'EmptyValue'
Возвращенное значение для пустых числовых полейNaN
(значение по умолчанию) | скалярВозвращенное значение для пустых числовых полей в файлах разделенного текста, заданных как пара, разделенная запятой, состоящая из 'EmptyValue'
и скаляра.
'EndOfLine'
Символы конца строкиСимволы конца строки, заданные как пара, разделенная запятой, состоящая из 'EndOfLine'
и вектора символов или строки. Вектором символов должен быть '\r\n'
, или это должно задать отдельный символ. Общие символы конца строки являются символом новой строки ('\n'
) или возврат каретки ('\r'
). Если вы задаете '\r\n'
, то функция импорта обрабатывает любой \r
, \n
и комбинацию двух (\r\n
) как символы конца строки.
Последовательностью конца строки по умолчанию является \n
, \r
или \r\n
, в зависимости от содержимого вашего файла.
Если существуют отсутствующие значения и последовательность конца строки в конце последней строки в файле, то функция импорта возвращает пустые значения для тех полей. Это гарантирует, что отдельные ячейки в выходном массиве ячеек, C
, одного размера.
Пример: 'EndOfLine',':'
Типы данных: char | string
'ExpChars'
ExponentCharacters 'eEdD'
(значение по умолчанию) | вектор символов | строкаСимволы экспоненты, заданные как пара, разделенная запятой, состоящая из 'ExpChars'
и вектора символов или строки. Символами экспоненты по умолчанию является e
, E
, d
и D
.
Типы данных: char | string
'HeaderLines'
Количество строк заголовка0
(значение по умолчанию) | положительное целое числоКоличество строк заголовка, заданных как пара, разделенная запятой, состоящая из 'HeaderLines'
и положительного целого числа. textscan
пропускает строки заголовка, включая остаток от текущей строки.
'MultipleDelimsAsOne'
Несколько обработка разделителя0 (false)
(значение по умолчанию) | 1 (true)
Несколько обработка разделителя, заданная как пара, разделенная запятой, состоящая из 'MultipleDelimsAsOne'
и или true
или false
. Если true
, то функция импорта обрабатывает последовательные разделители как один разделитель. Повторные разделители, разделенные пробелом, также обработаны как один разделитель. Необходимо также задать опцию Delimiter
.
Пример: 'MultipleDelimsAsOne',1
'ReturnOnError'
— Поведение, когда textscan
не удается считать или преобразовать1 (true)
(значение по умолчанию) | 0 (false)
Поведение, когда textscan
не удается считать или преобразовать, заданный как пара, разделенная запятой, состоящая из 'ReturnOnError'
и или true
или false
. Если true
, textscan
останавливается без ошибки и возвращает все полевое чтение. Если false
, textscan
останавливается с ошибкой и не возвращает выходной массив ячеек.
'TreatAsEmpty'
Текст заполнителя, чтобы обработать как пустое значениеТекст заполнителя, чтобы обработать как пустое значение, заданное как пара, разделенная запятой, состоящая из 'TreatAsEmpty'
и вектора символов, массива ячеек из символьных векторов, строки или массива строк. Эта опция только применяется к числовым полям.
Типы данных: char | string
'Whitespace'
— Пробельные символы' \b\t'
(значение по умолчанию) | вектор символов | строкаПробельные символы, заданные как пара, разделенная запятой, состоящая из 'Whitespace'
и вектора символов или строки, содержащей один или несколько символов. textscan
добавляет пробел, char(32)
, любому задал Whitespace
, если Whitespace
не пуст (''
), и formatSpec
включает любой спецификатор преобразования.
Когда вы задаете одну из следующих escape-последовательностей как любой пробельный символ, textscan
преобразовывает ту последовательность в соответствующий управляющий символ:
\b | Клавиша Backspace |
\n | Новая строка |
\r | Возврат каретки |
\t | Вкладка |
\\ | Наклонная черта влево (\ ) |
Типы данных: char | string
TextType
Тип выходных данных текста'char'
(значение по умолчанию) | 'string'
Тип выходных данных текста, заданного как пара, разделенная запятой, состоящая из 'TextType'
и или 'char'
или 'string'
. Если вы задаете значение 'char'
, то textscan
возвращает текст как массив ячеек из символьных векторов. Если вы задаете значение 'string'
, то textscan
возвращает текст как массив типа string
.
C
Файл или текстовые данныеФайл или текстовые данные, возвращенные как массив ячеек.
Для каждого числового спецификатора преобразования в formatSpec
функция textscan
возвращает K
-by-1 MATLAB числовой вектор к выходному массиву ячеек, C
, где K
является числом раз, что textscan
находит поле, совпадающее со спецификатором.
Для каждого текстового спецификатора преобразования (%s
, %q
или %[...]
) в formatSpec
, функция textscan
возвращает K
-by-1 массив ячеек из символьных векторов, где K
является числом раз, что textscan
находит поле, совпадающее со спецификатором. Для каждого преобразования символов, которое включает оператор ширины поля, textscan
возвращает K
-by-M
символьный массив, где M
является шириной поля.
Для каждого datetime или категориального спецификатора преобразования в formatSpec
, функция textscan
возвращает K
-by-1 datetime или категориальный вектор к выходному массиву ячеек, C
, где K
является числом раз, что textscan
находит поле, совпадающее со спецификатором.
position
— Положение в файле или векторе символов Положение в конце сканирования, в файле или векторе символов, возвратилось как целое число класса double
. Для файла ftell
(fileID)
возвратил бы то же значение после вызова textscan
. Для вектора символов position
указывает сколько символов чтение textscan
.
textscan
преобразовывает числовые поля в заданный выходной тип согласно правилам MATLAB относительно переполнения, усечения и использования NaN
, Inf
и -Inf
. Например, MATLAB представляет целочисленный NaN
как нуль. Если textscan
находит пустое поле сопоставленным со спецификатором целочисленного формата (таким как %d
или %u
), это возвращает пустое значение как нуль и не NaN
.
При соответствии с данными к текстовому спецификатору преобразования, чтения textscan
, пока это не находит разделитель или символ конца строки. При соответствии с данными к числовому спецификатору преобразования, чтения textscan
, пока это не находит нечисловой символ. Когда textscan
больше не может совпадать с данными к конкретному спецификатору преобразования, это пытается совпадать с данными к следующему спецификатору преобразования в formatSpec
. Знак (+
или -
), символы экспоненты и десятичные точки рассматривается цифровыми символами.
Знак | Цифры | Десятичная точка | Цифры | 'ExponentCharacter' | Знак | Цифры |
---|---|---|---|---|---|---|
Считайте один символ знака, если он существует. | Считайте одну или несколько цифр. | Считайте одну десятичную точку, если она существует. | Если существует десятичная точка, считайте одну или несколько цифр, которые сразу следуют за нею. | Считайте один символ экспоненты, если он существует. | Если существует символ экспоненты, считайте один символ знака. | Если существует символ экспоненты, считайте одну или несколько цифр, которые следуют за ним. |
textscan
импортирует любое комплексное число в целом в комплексное числовое поле, преобразовывая действительные и мнимые части в заданный числовой тип (такие как %d
или %f
). Допустимые формы для комплексного числа:
±<real>± <imag>i|j | Пример: |
±<imag>i|j | Пример: |
Не включайте встроенный пробел в комплексное число. textscan
интерпретирует встроенный пробел как разделитель полей.
fopen
| fread
| fscanf
| load
| readcell
| readmatrix
| readtable
| readvars
| uiimport
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.