Считайте отформатированные данные из текстового файла или строки
считывает данные из открытого текстового файла в массив ячеек, C = textscan(fileID,formatSpec)C. Текстовый файл обозначается идентификатором файла, fileID. Используйте fopen открыть файл и получить fileID значение. Когда вы закончили читать из файла, закрываете файл путем вызова fclose(fileID).
textscan попытки совпадать с данными в файле к спецификатору преобразования в formatSpec. textscan функция повторно применяет formatSpec в целом файле и остановках, когда это не может совпадать с formatSpec к данным.
данные о файле чтений с помощью C = textscan(fileID,formatSpec,N)formatSpec N времена, где N положительное целое число. Считывать дополнительные данные из файла после N циклы, вызовите textscan снова с помощью исходного fileID. Если вы возобновляете текстовое сканирование файла путем вызова textscan с тем же идентификатором файла (fileID), затем textscan автоматически резюме, читающие в точке, где это отключило последнее чтение.
читает текст из вектора символов C = textscan(chr,formatSpec)chr в массив ячеек C. При чтении текста из вектора символов, повторенных вызовов textscan перезапустите сканирование с начала каждый раз. Чтобы перезапустить сканирование от последней позиции, запросите position вывод .
textscan попытки совпадать с данными в векторе символов chr к формату, заданному в formatSpec.
использует C = textscan(chr,formatSpec,N)formatSpec N времена, где 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=1×9 cell
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 как 0textscan преобразует пустое значение в 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=1×4 cell
{4x1 int32} {4x1 double} {4x1 double} {4x1 double}
Значение по умолчанию для CollectOutput 0 ложь), таким образом, 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=1×2 cell
{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'.
Когда оператор ширины поля используется с отдельными символами (%ctextscan также разделитель чтений, пробел и символы конца линии.
Пример: %7c чтения 7 символов, включая пробел, so'Day and night' чтения как 'Day and'.
Точность
Для чисел с плавающей запятой (%nF, %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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
C = textscan(fileID,formatSpec,'HeaderLines',3,'Delimiter',',') пропускает первые три линии данных, и затем считывает остающиеся данные, обрабатывая запятые как разделитель.Имена не являются чувствительными к регистру.
'CollectOutput' — Логический индикатор, определяющий конкатенацию данных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''characters'. Если вы не задаете разделитель, то:
символы-разделители совпадают с пробельными символами. Пробельными символами по умолчанию является ' 'B, и '\t'. Используйте 'Whitespace' аргумент пары "имя-значение", чтобы задать альтернативные пробельные символы.
textscan интерпретирует повторенные пробельные символы как один разделитель.
Когда вы задаете одну из следующих escape-последовательностей как разделитель, textscan преобразует ту последовательность в соответствующий управляющий символ:
\b | Клавиша Backspace |
\n | Новая строка |
\r | Возврат каретки |
\t | Вкладка |
\\ | Обратная косая черта (\) |
Типы данных: char | string
'EmptyValue' — Возвращенное значение для пустых числовых полейNaN (значение по умолчанию) | скалярВозвращенное значение для пустых числовых полей в файлах разделенного текста, заданных как разделенная запятой пара, состоящая из 'EmptyValue' и скаляр.
'EndOfLine' — Символы конца линииСимволы конца линии, заданные как разделенная запятой пара, состоящая из 'EndOfLine' и вектор символов или строка. Вектором символов должен быть '\r\n' или это должно задать отдельный символ. Общие символы конца линии являются символом новой строки ('\n') или возврат каретки ('\r'). Если вы задаете '\r\n', затем функция импорта обрабатывает любой \rN, и комбинация двух (\r\n) как символы конца линии.
Последовательностью конца линии по умолчанию является \nR, или \r\n, В зависимости от содержимого вашего файла.
Если существуют отсутствующие значения и последовательность конца линии в конце последней линии в файле, то функция импорта возвращает пустые значения для тех полей. Это гарантирует что отдельные ячейки в выходном массиве ячеек, C, одного размера.
Пример: 'EndOfLine',':'
Типы данных: char | string
'ExpChars' ExponentCharacters 'eEdD' (значение по умолчанию) | вектор символов | строкаСимволы экспоненты, заданные как разделенная запятой пара, состоящая из 'ExpChars' и вектор символов или строка. Символами экспоненты по умолчанию является eED, и D.
Типы данных: char | string
'HeaderLines' — Количество линий заголовка (значение по умолчанию) | положительное целое числоКоличество линий заголовка, заданных как разделенная запятой пара, состоящая из 'HeaderLines' и положительное целое число. textscan пропускает линии заголовка, включая остаток от текущей линии.
'MultipleDelimsAsOne' — Несколько обработка разделителя0 (false) (значение по умолчанию) | 1 (true)Несколько обработка разделителя, заданная как разделенная запятой пара, состоящая из 'MultipleDelimsAsOne' и любой true или false. Если true, затем функция импорта обрабатывает последовательные разделители как один разделитель. Повторные разделители, разделенные пробелом, также обработаны как один разделитель. Необходимо также задать Delimiter опция.
Пример: 'MultipleDelimsAsOne',1
'ReturnOnError' — Поведение, когда textscan сбои, чтобы читать или преобразовать1 (true) (значение по умолчанию) | 0 (false)Поведение, когда textscan сбои, чтобы читать или преобразовать, заданный как разделенная запятой пара, состоящая из 'ReturnOnError' и любой true или false. Если truetextscan завершает работу без ошибки и возвращает все полевое чтение. Если falsetextscan завершает работу с ошибкой и не возвращает выходной массив ячеек.
'TreatAsEmpty' — Текст заполнителя, чтобы обработать как пустое значениеТекст заполнителя, чтобы обработать как пустое значение, заданное как разделенная запятой пара, состоящая из 'TreatAsEmpty' и вектор символов, массив ячеек из символьных векторов, строка или массив строк. Эта опция только применяется к числовым полям.
Типы данных: char | string
'Whitespace' — Пробельные символы' \b\t' (значение по умолчанию) | вектор символов | строкаПробельные символы, заданные как разделенная запятой пара, состоящая из 'Whitespace' и вектор символов или строка, содержащая один или несколько символов. textscan добавляет пробел, char(32), любому задал Whitespace, если Whitespace isempty) и 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- 1 MATLAB числовой вектор к выходному массиву ячеек, C, где K число раз что textscan находит поле, совпадающее со спецификатором.
Для каждого текстового спецификатора преобразования (%sQ, или %[...]) в formatSpec, textscan функция возвращает K- 1 массив ячеек из символьных векторов, где K число раз что textscan находит поле, совпадающее со спецификатором. Для каждого преобразования символов, которое включает оператор ширины поля, textscan возвращает K- M символьный массив, где M ширина поля.
Для каждого datetime или категориального спецификатора преобразования в formatSpec, textscan функция возвращает K- 1 datetime или категориальный вектор к выходному массиву ячеек, C, где K число раз что textscan находит поле, совпадающее со спецификатором.
position — Положение в файле или векторе символов Положение в конце сканирования, в файле или векторе символов, возвратилось как целое число класса double. Для файла, ftell(fileID) возвратил бы то же значение после вызова textscan. Для вектора символов, position указывает сколько символов textscan чтение.
textscan преобразует числовые поля в заданный выходной тип согласно правилам MATLAB относительно переполнения, усечения и использования NaNInf, и -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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.