Настройки импорта возражают для текстовых файлов фиксированной ширины
Объект FixedWidthImportOptions
позволяет вам задать, как MATLAB® импортирует табличные данные фиксированной ширины от текстовых файлов. Объект содержит свойства, которые управляют процессом импорта данных, включая обработку ошибок и недостающих данных.
Можно создать объект FixedWidthImportOptions
с помощью любого функция fixedWidthImportOptions
(описанный здесь) или функция detectImportOptions
:
Используйте fixedWidthImportOptions
, чтобы задать свойства импорта на основе ваших требований импорта.
Используйте detectImportOptions
, чтобы обнаружить и заполнить свойства импорта на основе содержимого текстового файла фиксированной ширины, заданного в filename
.
opts = detectImportOptions(filename)
opts = fixedWidthImportOptions
opts = fixedWidthImportOptions('NumVariables',numVars)
opts = fixedWidthImportOptions(___,Name,Value)
opts = fixedWidthImportOptions
создает объект FixedWidthImportOptions
с одной переменной.
создает объект с количеством переменных, заданных в opts = fixedWidthImportOptions('NumVariables',numVars)
numVars
.
Чтобы импортировать данные с помощью этого пользовательского объекта FixedWidthImportOptions
, необходимо сначала настроить эти свойства: VariableNames
, VariableWidths
, VariableTypes
и DataLine
.
opts = fixedWidthImportOptions(___,Name,Value)
задает дополнительные свойства для объекта FixedWidthImportOptions
с помощью одного или нескольких аргументов в виде пар "имя-значение".
numVars
— Количество переменныхКоличество переменных, заданных как положительное скалярное целое число.
Имена переменных
Имена переменныхИмена переменных, заданные как массив ячеек из символьных векторов или массив строк. Свойство VariableNames
содержит имена, чтобы использовать при импорте переменных.
Если данные содержат переменные N
, но никакие имена переменных не обнаруживаются, то свойство VariableNames
содержит {'Var1','Var2',...,'VarN'}
.
Пример: opts. VariableNames
возвращает текущие (обнаруженные) имена переменных.
Пример: opts. VariableNames (3) = {'Высота'}
изменяет название третьей переменной к Высоте
.
Типы данных: char
| представляет в виде строки
| ячейка
VariableWidths
Ширина поля переменныхШирина поля переменных, заданных как вектор положительных целочисленных значений. Каждое положительное целое число в векторе соответствует количеству символов в поле, которое составляет переменную. Свойство VariableWidths
содержит запись, соответствующую каждой переменной, заданной в свойстве VariableNames
.
Пример: opts. VariableWidths
возвращает вектор переменных ширин, где каждый элемент соответствует ширине переменной в данных.
VariableTypes
Переменные типы данныхПеременные типы данных, заданные как массив ячеек из символьных векторов или массив строк. Свойство VariableTypes
определяет типы данных использовать при импорте переменных. При присвоении новых значений задайте VariableTypes
как массив ячеек допустимых имен типов данных.
Чтобы обновить свойство VariableTypes
, используйте функцию setvartype
.
Пример: opts. VariableTypes
возвращает текущие (обнаруженные) переменные типы данных.
Пример: opts = setvartype (opts, 'Высота', {'дважды'})
изменяет тип данных переменной Высоты
, чтобы удвоиться
.
Типы данных: ячейка
| единственный
| удваивается
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
| char
| строка
| категориальный
| datetime
SelectedVariableNames
Подмножество переменных, чтобы импортироватьПодмножество переменных, чтобы импортировать, заданный как вектор символа, представляет в виде строки скаляр, массив ячеек из символьных векторов, массив строк или массив числовых индексов.
SelectedVariableNames
должен быть подмножеством имен, содержавшихся в свойстве VariableNames
. По умолчанию SelectedVariableNames
содержит все имена переменных из свойства VariableNames
, что означает, что все переменные импортируются.
Используйте свойство SelectedVariableNames
импортировать только переменные интереса. Задайте подмножество переменных с помощью свойства SelectedVariableNames
и используйте readtable
, чтобы импортировать только то подмножество.
Пример: opts. SelectedVariableNames = {'Высота', 'LastName'}
выбирает только две переменные, Высоту
и LastName
, для операции импорта.
Пример: opts. SelectedVariableNames = [1 5]
выбирает только две переменные, первую переменную и пятую переменную, для операции импорта.
Пример: T = readtable (имя файла, opts)
возвращает таблицу, содержащую только переменные, заданные в свойстве SelectedVariableNames
объекта opts
.
Типы данных: uint16 |
uint32
| uint64
| char
| представляет в виде строки
| ячейка
VariableOptions
Введите определенные переменные настройки импортаВведите определенные переменные настройки импорта, возвращенные как массив переменных объектов настроек импорта. Массив содержит объект, соответствующий каждой переменной, заданной в свойстве VariableNames
. Каждый объект в массиве содержит свойства, которые поддерживают импорт данных с определенным типом данных.
Параметры переменной поддерживают эти типы данных: числовой, текст, logical
, datetime
или categorical
.
Чтобы запросить ток (или обнаруженный) опции для переменной, используйте функцию getvaropts
.
Чтобы установить и настроить опции для переменной, используйте функцию setvaropts
.
Пример: opts. VariableOptions
возвращает набор объектов VariableImportOptions
, одно соответствие каждой переменной в данных.
Пример: getvaropts (opts, 'Высота')
возвращает объект VariableImportOptions
для переменной Высоты
.
Пример: opts = setvaropts (opts, 'Высота', 'FillValue', 0)
устанавливает свойство FillValue
для переменной Высоты
к 0
.
DataLines
— Местоположение данныхМестоположение данных, заданное как положительное скалярное целое число или N-
by-2
массив положительных скалярных целых чисел. Задайте DataLines
с помощью одной из следующих форм.
Задайте как |
Описание |
---|---|
|
Задайте первую строку, которая содержит данные. Определение значения с помощью
|
| Задайте область значений строки, которая содержит данные. Значения в массиве |
|
Задайте несколько областей значений строки, чтобы считать с Допустимый массив нескольких областей значений строки должен:
При определении нескольких областей значений строки используйте |
Пример: opts. DataLines = 5
наборов свойство DataLines
к значению [5 inf]
. Считайте все строки данных, начинающих со строки 5
в конец.
Пример: opts. DataLines = [2 6]
устанавливает свойство считать строки 2 - 6
.
Пример: opts. DataLines = [1 3; 5 6; 8 inf]
устанавливают свойство считать строки 1, 2, 3, 5, 6
и все строки между
8
, и конец файла.
Типы данных: единственный
| удваиваются
| uint8
| uint16
| uint32
| uint64
RowNamesColumn
Строка называет местоположение0
(значение по умолчанию) | положительное скалярное целое числоСтрока называет местоположение, заданное как положительное скалярное целое число. Свойство RowNamesColumn
задает местоположение столбца, содержащего имена строки.
Если RowNamesColumn
задан как 0, то не импортируйте имена строки. В противном случае импортируйте имена строки из заданного столбца.
Пример: opts. RowNamesColumn = 2;
Типы данных: единственный
| удваиваются
| uint8
| uint16
| uint32
| uint64
VariableNamesLine
Местоположение имен переменных0
(значение по умолчанию) | положительное скалярное целое числоМестоположение имен переменных, заданное как положительное скалярное целое число. Свойство VariableNamesLine
задает номер строки, где имена переменных расположены.
Если VariableNamesLine
задан как 0, то не импортируйте имена переменных. В противном случае импортируйте имена переменных из заданной строки.
Пример: opts. VariableNamesLine = 6;
Типы данных: единственный
| удваиваются
| uint8
| uint16
| uint32
| uint64
VariableDescriptionsLine
Местоположение описания переменной0
(значение по умолчанию) | положительное скалярное целое числоМестоположение описания переменной, заданное как положительное скалярное целое число. Свойство VariableDescriptionsLine
задает номер строки, где описания переменной расположены.
Если VariableDescriptionsLine
задан как 0, то не импортируйте описания переменной. В противном случае импортируйте описания переменной из заданной строки.
Пример: opts. VariableDescriptionsLine = 7;
Типы данных: единственный
| удваиваются
| uint8
| uint16
| uint32
| uint64
VariableUnitsLine
Переменное модульное местоположение0
(значение по умолчанию) | положительное скалярное целое числоПеременное модульное местоположение, заданное как положительное скалярное целое число. Свойство VariableUnitsLine
задает номер строки, где переменные модули расположены.
Если VariableUnitsLine
задан как 0, то не импортируйте переменные модули. В противном случае импортируйте переменные модули из заданной строки.
Пример: opts. VariableUnitsLine = 8;
Типы данных: единственный
| удваиваются
| uint8
| uint16
| uint32
| uint64
Whitespace
— Символы, чтобы обработать как пробелСимволы, чтобы обработать как пробел, заданный как вектор символа или представить в виде строки скаляр, содержащий один или несколько символов.
Пример: '_'
Пример:'?!.',
'LineEnding'
Символы конца строки{'\n','\r','\r\n'}
(значение по умолчанию) | вектор символа | представляет скаляр в виде строки | массив ячеек из символьных векторов | массив строкСимволы конца строки, заданные как вектор символа, представляют в виде строки скаляр, массив ячеек из символьных векторов или массив строк.
Пример: N
Пример: '\r\n'
Пример: B:'}
Типы данных: char
| представляет в виде строки
| ячейка
CommentStyle
Стиль комментариевСтиль комментариев, заданных как вектор символа, представляет в виде строки скаляр, массив ячеек из символьных векторов или массив строк.
Например, чтобы проигнорировать текст после знака процента на той же строке, задайте CommentStyle
как '%'
.
Пример: {'/*'}
Типы данных: char
| представляет в виде строки
| ячейка
Encoding
— Схема кодировки символов'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
|...Схема кодировки символов, сопоставленная с файлом, заданным как пара, разделенная запятой, состоящая из 'Encoding'
и 'system'
или схемы кодирования стандартного символа, называет как одно из значений в этой таблице.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
Пример: 'система'
использует кодирование системного значения по умолчанию.
Типы данных: char | string
PartialFieldRule
Процедура, чтобы обработать частичные поля'keep'
| 'fill'
| 'omitrow'
| 'omitvar'
| 'wrap'
| 'error'
Процедура, чтобы обработать частичные поля в данных, заданных как одно из значений в этой таблице.
PartialFieldRule | Поведение |
---|---|
'keep' | Сохраните частичные полевые данные и преобразуйте текст в соответствующий тип данных. В некоторых случаях, когда функция импорта не может интерпретировать частичные данные, ошибка преобразования может произойти. |
заливка | Замените недостающие данные на содержимое свойства Свойство |
'omitrow' | Не используйте строки, которые содержат частичные данные. |
'omitvar' | Не используйте переменные, которые содержат частичные данные. |
'wrap' | Начните читать следующую строку символов. |
ошибка | Отобразите сообщение об ошибке и прервите операцию импорта. |
Пример: opts. PartialFieldRule = 'сохраняют';
Типы данных: char | string
EmptyLineRule
Процедура, чтобы обработать пустые строки'skip'
| 'read'
| 'error'
Процедура, чтобы обработать пустые строки в данных, заданных как 'skip'
, 'read'
или 'error'
. Функция импорта интерпретирует пробел как пустой.
EmptyLineRule | Поведение |
---|---|
'skip' | Пропустите пустые строки. |
чтение | Импортируйте пустые строки. Функция импорта анализирует пустую строку с помощью значений, заданных в VariableWidths , VariableOptions , MissingRule и других соответствующих свойствах, таких как Whitespace . |
ошибка | Отобразите сообщение об ошибке и прервите операцию импорта. |
Пример: opts. EmptyLineRule = 'пропуск';
Типы данных: char | string
MissingRule
Процедура, чтобы управлять недостающими данными'fill'
| 'error'
| 'omitrow'
| 'omitvar'
Процедура, чтобы управлять недостающими данными, заданными как одно из значений в этой таблице.
MissingRule | Поведение |
---|---|
заливка | Замените недостающие данные на содержимое свойства Свойство |
ошибка | Прекратите импортировать и отобразите сообщение об ошибке, показывающее недостающую запись и поле. |
'omitrow' | Не используйте строки, которые содержат недостающие данные. |
'omitvar' | Не используйте переменные, которые содержат недостающие данные. |
Пример: opts. MissingRule = 'omitrow';
uint32
Типы данных: char | string
ImportErrorRule
Процедура, чтобы обработать ошибки импорта'fill'
| 'error'
| 'omitrow'
| 'omitvar'
Процедура, чтобы обработать ошибки импорта, заданные как одно из значений в этой таблице.
ImportErrorRule | Поведение |
---|---|
заливка | Замените данные, где ошибка произошла с содержимым свойства Свойство |
ошибка | Прекратите импортировать и отобразите сообщение об ошибке, показывающее вызывающую ошибку запись и поле. |
'omitrow' | Не используйте строки, где ошибки происходят. |
'omitvar' | Не используйте переменные, где ошибки происходят. |
Пример: opts. ImportErrorRule = 'omitvar';
Типы данных: char | string
ExtraColumnsRule
Процедура, чтобы обработать дополнительные столбцы'addvars'
| 'ignore'
| 'wrap'
| 'error'
Процедура, чтобы обработать дополнительные столбцы в данных, заданных как одно из значений в этой таблице.
ExtraColumnsRule | Поведение |
---|---|
'addvars' | Чтобы импортировать дополнительные столбцы, создайте новые переменные. Если существуют дополнительные столбцы Примечание: Дополнительные столбцы импортируются как текст с данными |
'ignore' | Проигнорируйте дополнительные столбцы данных. |
'wrap' | Перенесите дополнительные столбцы данных к новым записям. Это действие не изменяет количество переменных. |
ошибка | Отобразите сообщение об ошибке и прервите операцию импорта. |
Типы данных: char | string
getvaropts | Получите переменные настройки импорта |
setvaropts | Установите переменные настройки импорта |
setvartype | Установите переменные типы данных |
предварительный просмотр | Предварительный просмотр восемь строк из файла с помощью настроек импорта |
Исследуйте файл форматированного текста фиксированной ширины, инициализируйте объект настроек импорта и используйте объект импортировать таблицу из текстового файла.
Загрузка и текстовый файл Фиксированной Ширины предварительного просмотра
Загрузите файл fixed_width_patients_subset_perfect.txt
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывает, что файл содержит отформатированные данные фиксированной ширины.
filename = fullfile(matlabroot,'examples','matlab','fixed_width_patients_subset_perfect.txt');
Examine and Extract Properties файла Фиксированной Ширины
Текстовому файлу фиксированной ширины организовали табличные данные стартовое местоположение, количество переменных, имен переменных и переменных ширин. Получите эти свойства и желаемый тип данных для переменных.
DataStartLine = 2; NumVariables = 7; VariableNames = {'LastName','Gender','Age','Location','Height',... 'Weight','Smoker'}; VariableWidths = [ 10, 7, 4, 26, 7, ... 7, 7 ] ; DataType = {'char','categorical','double','char','double',... 'double','logical'};
Инициализируйте и сконфигурируйте объект FixedWidthImportOptions
Инициализируйте объект FixedWidthImportOptions
и сконфигурируйте его свойства совпадать со свойствами данных в fixed_width_patients_subset_perfect.txt
.
opts = fixedWidthImportOptions('NumVariables',NumVariables,... 'DataLines',DataStartLine,... 'VariableNames',VariableNames,... 'VariableWidths',VariableWidths,... 'VariableTypes',DataType);
Таблица импорта
Используйте readtable
с объектом FixedWidthImportOptions
импортировать таблицу.
T = readtable(filename,opts)
T=10×7 table
LastName Gender Age Location Height Weight Smoker
__________ ______ ___ ___________________________ ______ ______ ______
'Smith' Male 38 'County General Hospital' 71 176 true
'Johnson' Male 43 'VA Hospital' 69 163 false
'Williams' Female 38 'St. Mary's Medical Center' 64 131 false
'Brown' Female 49 'County General Hospital' 64 119 false
'Miller' Female 33 'VA Hospital' 64 142 true
'Wilson' Male 40 'VA Hospital' 68 180 false
'Taylor' Female 31 'County General Hospital' 66 132 false
'Thomas' Female 42 'St. Mary's Medical Center' 66 137 false
'Jackson' Male 25 'VA Hospital' 71 174 false
'Clark' Female 48 'VA Hospital' 65 133 false
Задайте объект настроек импорта импортировать грязные данные из файла форматированного текста фиксированной ширины. Сконфигурируйте объект обработать грязные данные и использовать его, чтобы импортировать таблицу.
Загрузка и текстовый файл Фиксированной Ширины предварительного просмотра
Загрузите файл fixed_width_patients_subset_messy.txt
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Снимок экрана показывает, что файл содержит:
Пустые строки – Строки 7, 12, и 13
Дополнительный столбец – Столбец 8
Недостающие данные – Строки 1, 4, 9 и 11
Частичные поля – Длятся 3 строки
filename = fullfile(matlabroot,'examples','matlab','fixed_width_patients_subset_messy.txt');
Examine and Capture Properties файла Фиксированной Ширины
Текстовому файлу фиксированной ширины организовали табличные данные пристальное местоположение, количество переменных, имен переменных и переменных ширин. Получите эти свойства и тип данных, который вы хотите использовать для переменных.
DataStartLine = 2; NumVariables = 7; VariableNames = {'LastName','Gender','Age','Location','Height',... 'Weight','Smoker'}; VariableWidths = [ 10, 7, 4, 26, 7, ... 7, 7 ] ; DataType = {'char','categorical','double','char','double',... 'double','logical'};
Initialize FixedWidthImportOptions
Object and Set Up Variable Properties
Инициализируйте объект FixedWidthImportOptions
и сконфигурируйте его свойства совпадать со свойствами данных.
opts = fixedWidthImportOptions('NumVariables',NumVariables,... 'DataLines',DataStartLine,... 'VariableNames',VariableNames,... 'VariableWidths',VariableWidths,... 'VariableTypes',DataType);
Настройте EmptyLinesRule
, Missing Rule
и ExtraColumnsRule
Считайте пустые строки в данных путем установки EmptyLineRule
на 'read'
. Затем, заполните недостающие экземпляры с предопределенными значениями путем установки MissingRule
на 'fill'
. Finally
, чтобы проигнорировать дополнительный столбец во время импорта, установить ExtraColumnsRule
на 'ignore'
. Для получения дополнительной информации о свойствах и их значениях, см. документацию для FixedWidthImportOptions
.
opts.EmptyLineRule = 'read'; opts.MissingRule = 'fill'; opts.ExtraColumnsRule ='ignore';
Настройте PartialFieldRule
Частичные поля происходят, когда функция импорта достигает символа конца строки, прежде чем полная переменная ширина будет пересечена. Например, в этом предварительном просмотре, последних трех строках из файла fixed_width_patients_subset_messy.txt
txt . Здесь, в последней строке последнего столбца, символ конца строки появляется после двух мест от запуска поля, прежде чем достигнута полная переменная ширина три.
Это возникновение частичного поля иногда может указывать на ошибку. Поэтому используйте PartialFieldRule
, чтобы решить, как обработать это данные. Чтобы сохранить частичные полевые данные и преобразовать его в соответствующий тип данных, установите PartialFieldRule
на 'keep'
. Для получения дополнительной информации о PartialFieldRule
см. документацию для FixedWidthImportOptions
.
opts.PartialFieldRule = 'keep';
Таблица импорта
Импортируйте таблицу при помощи функции readtable
и объекта FixedWidthImportOptions
и предварительно просмотрите данные.
T = readtable(filename,opts)
T=15×7 table
LastName Gender Age Location Height Weight Smoker
__________ ___________ ___ ___________________________ ______ ______ ______
'Smith' Male 38 'County General Hospital' 71 176 true
'Johnson' Male 43 'VA Hospital' 69 163 false
'Williams' Female 38 'St. Mary's Medical Center' NaN NaN false
'Jones' Female 40 'VA Hospital' 67 133 false
'Brown' Female 49 'County General Hospital' 64 119 false
'' <undefined> NaN '' NaN NaN false
'Wilson' Male 40 'VA Hospital' 68 180 false
'Moore' Male 28 'St. Mary's Medical Center' NaN 183 false
'Taylor' Female 31 'County General Hospital' 66 132 false
'Anderson' Female 45 'County General Hospital' 68 NaN false
'' <undefined> NaN '' NaN NaN false
'' <undefined> NaN '' NaN NaN false
'White' Male 39 'VA Hospital' 72 2 false
'Harris' Female 36 'St. Mary's Medical Center' 65 12 false
'Martin' Male 48 'VA Hospital' 71 181 true
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.