Считайте отформатированные данные из текстового файла или строки
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 Число раз, чтобы применить formatSpecInf (значение по умолчанию) | положительное целое числоЧисло раз, чтобы применить 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_YYxx является строчный 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.