Настройки импорта возражают для текстовых файлов фиксированной ширины
Объект 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) = {'Height'}
изменяет название третьей переменной к Height
.
Типы данных: char
| string
| cell
VariableWidths
Ширина поля переменныхШирина поля переменных, заданных как вектор положительных целочисленных значений. Каждое положительное целое число в векторе соответствует количеству символов в поле, которое составляет переменную. Свойство VariableWidths
содержит запись, соответствующую каждой переменной, заданной в свойстве VariableNames
.
Пример: opts.VariableWidths
возвращает вектор переменных ширин, где каждый элемент соответствует ширине переменной в данных.
VariableTypes
Типы данных переменныхТипы данных переменных, заданные как массив ячеек из символьных векторов или массив строк. Свойство VariableTypes
определяет типы данных использовать при импорте переменных. При присвоении новых значений задайте VariableTypes
как массив ячеек допустимых имен типов данных.
Чтобы обновить свойство VariableTypes
, используйте функцию setvartype
.
Пример: opts.VariableTypes
возвращает текущие (обнаруженные) типы данных переменных.
Пример: opts = setvartype(opts,'Height',{'double'})
изменяет тип данных переменной Height
к double
.
Типы данных: cell
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| categorical
| datetime
SelectedVariableNames
Подмножество переменных, чтобы импортироватьПодмножество переменных, чтобы импортировать, заданный как вектор символов, представляет в виде строки скаляр, массив ячеек из символьных векторов, массив строк или массив числовых индексов.
SelectedVariableNames
должен быть подмножеством имен, содержавшихся в свойстве VariableNames
. По умолчанию SelectedVariableNames
содержит все имена переменных из свойства VariableNames
, что означает, что все переменные импортируются.
Используйте свойство SelectedVariableNames
импортировать только переменные интереса. Задайте подмножество переменных с помощью свойства SelectedVariableNames
и используйте readtable
, чтобы импортировать только то подмножество.
Пример: opts.SelectedVariableNames = {'Height','LastName'}
выбирает только две переменные, Height
и LastName
, для операции импорта.
Пример: opts.SelectedVariableNames = [1 5]
выбирает только две переменные, первую переменную и пятую переменную, для операции импорта.
Пример: T = readtable(filename,opts)
возвращает таблицу, содержащую только переменные, заданные в свойстве SelectedVariableNames
объекта opts
.
Типы данных: uint16
| uint32
| uint64
| char
| string
| cell
VariableOptions
Введите определенные переменные настройки импортаВведите определенные переменные настройки импорта, возвращенные как массив переменных объектов настроек импорта. Массив содержит объект, соответствующий каждой переменной, заданной в свойстве VariableNames
. Каждый объект в массиве содержит свойства, которые поддерживают импорт данных с определенным типом данных.
Параметры переменной поддерживают эти типы данных: числовой, текст, logical
, datetime
или categorical
.
Чтобы запросить ток (или обнаруженный) опции для переменной, используйте функцию getvaropts
.
Чтобы установить и настроить опции для переменной, используйте функцию setvaropts
.
Пример: opts.VariableOptions
возвращает набор объектов VariableImportOptions
, одно соответствие каждой переменной в данных.
Пример: getvaropts(opts,'Height')
возвращает объект VariableImportOptions
для переменной Height
.
Пример: opts = setvaropts(opts,'Height','FillValue',0)
устанавливает свойство FillValue
для переменной Height
к 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
и концом файла.
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
RowNamesColumn
Строка называет местоположение0
(значение по умолчанию) | положительное скалярное целое числоСтрока называет местоположение, заданное как положительное скалярное целое число. Свойство RowNamesColumn
задает местоположение столбца, содержащего имена строки.
Если RowNamesColumn
задан как 0, то не импортируйте имена строки. В противном случае импортируйте имена строки из заданного столбца.
Пример: opts.RowNamesColumn = 2;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
VariableNamesLine
Местоположение имен переменных0
(значение по умолчанию) | положительное скалярное целое числоМестоположение имен переменных, заданное как положительное скалярное целое число. Свойство VariableNamesLine
задает номер строки, где имена переменных расположены.
Если VariableNamesLine
задан как 0, то не импортируйте имена переменных. В противном случае импортируйте имена переменных из заданной строки.
Пример: opts.VariableNamesLine = 6;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
VariableDescriptionsLine
Местоположение описания переменной0
(значение по умолчанию) | положительное скалярное целое числоМестоположение описания переменной, заданное как положительное скалярное целое число. Свойство VariableDescriptionsLine
задает номер строки, где описания переменной расположены.
Если VariableDescriptionsLine
задан как 0, то не импортируйте описания переменной. В противном случае импортируйте описания переменной из заданной строки.
Пример: opts.VariableDescriptionsLine = 7;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
VariableUnitsLine
Переменное модульное местоположение0
(значение по умолчанию) | положительное скалярное целое числоПеременное модульное местоположение, заданное как положительное скалярное целое число. Свойство VariableUnitsLine
задает номер строки, где переменные модули расположены.
Если VariableUnitsLine
задан как 0, то не импортируйте переменные модули. В противном случае импортируйте переменные модули из заданной строки.
Пример: opts.VariableUnitsLine = 8;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
Whitespace
— Символы, чтобы обработать как пробелСимволы, чтобы обработать как пробел, заданный как вектор символов или представить в виде строки скаляр, содержащий один или несколько символов.
Пример: 'Whitespace',' _'
Пример: 'Whitespace','?!.,'
'LineEnding'
Символы конца строки{'\n','\r','\r\n'}
(значение по умолчанию) | вектор символов | представляет скаляр в виде строки | массив ячеек из символьных векторов | массив строкСимволы конца строки, заданные как вектор символов, представляют в виде строки скаляр, массив ячеек из символьных векторов или массив строк.
Пример: 'LineEnding','\n'
Пример: 'LineEnding','\r\n'
Пример: 'LineEnding',{'\b',':'}
Типы данных: char
| string
| cell
CommentStyle
Стиль комментариевСтиль комментариев, заданных как вектор символов, представляет в виде строки скаляр, массив ячеек из символьных векторов или массив строк.
Например, чтобы проигнорировать текст после знака процента на той же строке, задайте CommentStyle
как '%'
.
Пример: 'CommentStyle',{'/*'}
Типы данных: char
| string
| cell
Encoding
— Схема кодировки символов'system'
| 'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
|...Схема кодировки символов сопоставлена с файлом, заданным как пара, разделенная запятой, состоящая из 'Encoding'
и 'system'
или имени схемы кодирования стандартного символа, такого как одно из значений в этой таблице.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
Пример: 'Encoding','system'
использует кодирование системного значения по умолчанию.
Типы данных: char | string
PartialFieldRule
Процедура, чтобы обработать частичные поля'keep'
| 'fill'
| 'omitrow'
| 'omitvar'
| 'wrap'
| 'error'
Процедура, чтобы обработать частичные поля в данных, заданных как одно из значений в этой таблице.
PartialFieldRule | Поведение |
---|---|
'keep' | Сохраните частичные полевые данные и преобразуйте текст в соответствующий тип данных. В некоторых случаях, когда функция импорта не может интерпретировать частичные данные, ошибка преобразования может произойти. |
'fill' | Замените недостающие данные на содержимое свойства Свойство |
'omitrow' | Не используйте строки, которые содержат частичные данные. |
'omitvar' | Не используйте переменные, которые содержат частичные данные. |
'wrap' | Начните читать следующую строку символов. |
'error' | Отобразите сообщение об ошибке и прервите операцию импорта. |
Пример: opts.PartialFieldRule = 'keep';
Типы данных: char | string
EmptyLineRule
Процедура, чтобы обработать пустые строки'skip'
| 'read'
| 'error'
Процедура, чтобы обработать пустые строки в данных, заданных как 'skip'
, 'read'
или 'error'
. Функция импорта интерпретирует пробел как пустой.
EmptyLineRule | Поведение |
---|---|
'skip' | Пропустите пустые строки. |
'read' | Импортируйте пустые строки. Функция импорта анализирует пустую строку с помощью значений, заданных в VariableWidths , VariableOptions , MissingRule и других соответствующих свойствах, таких как Whitespace . |
'error' | Отобразите сообщение об ошибке и прервите операцию импорта. |
Пример: opts.EmptyLineRule = 'skip';
Типы данных: char | string
MissingRule
Процедура, чтобы управлять недостающими данными'fill'
| 'error'
| 'omitrow'
| 'omitvar'
Процедура, чтобы управлять недостающими данными, заданными как одно из значений в этой таблице.
MissingRule | Поведение |
---|---|
'fill' | Замените недостающие данные на содержимое свойства Свойство |
'error' | Прекратите импортировать и отобразите сообщение об ошибке, показывающее недостающую запись и поле. |
'omitrow' | Не используйте строки, которые содержат недостающие данные. |
'omitvar' | Не используйте переменные, которые содержат недостающие данные. |
Пример: opts.MissingRule = 'omitrow';
uint32
Типы данных: char | string
ImportErrorRule
Процедура, чтобы обработать ошибки импорта'fill'
| 'error'
| 'omitrow'
| 'omitvar'
Процедура, чтобы обработать ошибки импорта, заданные как одно из значений в этой таблице.
ImportErrorRule | Поведение |
---|---|
'fill' | Замените данные, где ошибка произошла с содержимым свойства Свойство |
'error' | Прекратите импортировать и отобразите сообщение об ошибке, показывающее вызывающую ошибку запись и поле. |
'omitrow' | Не используйте строки, где ошибки происходят. |
'omitvar' | Не используйте переменные, где ошибки происходят. |
Пример: opts.ImportErrorRule = 'omitvar';
Типы данных: char | string
ExtraColumnsRule
Процедура, чтобы обработать дополнительные столбцы'addvars'
| 'ignore'
| 'wrap'
| 'error'
Процедура, чтобы обработать дополнительные столбцы в данных, заданных как одно из значений в этой таблице.
ExtraColumnsRule | Поведение |
---|---|
'addvars' | Чтобы импортировать дополнительные столбцы, создайте новые переменные. Если существуют дополнительные столбцы ПРИМЕЧАНИЕ: дополнительные столбцы импортируются как текст с данными type |
'ignore' | Проигнорируйте дополнительные столбцы данных. |
'wrap' | Перенесите дополнительные столбцы данных к новым записям. Это действие не изменяет количество переменных. |
'error' | Отобразите сообщение об ошибке и прервите операцию импорта. |
Типы данных: char | string
getvaropts | Получите переменные настройки импорта |
setvaropts | Установите переменные настройки импорта |
setvartype | Установите типы данных переменных |
preview | Предварительный просмотр восьми строк из файла с помощью параметров импорта |
Исследуйте файл форматированного текста фиксированной ширины, инициализируйте объект настроек импорта и используйте объект импортировать таблицу из текстового файла.
Загрузка и текстовый файл Фиксированной Ширины предварительного просмотра
Загрузите файл fixed_width_patients_subset_perfect.txt
и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывает, что файл содержит отформатированные данные фиксированной ширины.
filename = fullfile(matlabroot,'examples','matlab','fixed_width_patients_subset_perfect.txt');
Исследуйте и извлеките свойства файла с фиксированной шириной
Текстовому файлу фиксированной ширины организовали табличные данные стартовое местоположение, количество переменных, имен переменных и переменных ширин. Получите эти свойства и желаемый тип данных для переменных.
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');
Исследуйте и получите свойства файла с фиксированной шириной
Текстовому файлу фиксированной ширины организовали табличные данные пристальное местоположение, количество переменных, имен переменных и переменных ширин. Получите эти свойства и тип данных, который вы хотите использовать для переменных.
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
и сконфигурируйте его свойства совпадать со свойствами данных.
opts = fixedWidthImportOptions('NumVariables',NumVariables,... 'DataLines',DataStartLine,... 'VariableNames',VariableNames,... 'VariableWidths',VariableWidths,... 'VariableTypes',DataType);
Настройте EmptyLinesRule
, Missing Rule
и ExtraColumnsRule
Прочитайте пустые строки в данных путем установки EmptyLineRule
на 'read'
. Затем, заполните недостающие экземпляры с предопределенными значениями путем установки MissingRule
на 'fill'
. Наконец, чтобы проигнорировать дополнительный столбец во время импорта, установите ExtraColumnsRule
на 'ignore'
. Для получения дополнительной информации о свойствах и их значениях, см. документацию для FixedWidthImportOptions
.
opts.EmptyLineRule = 'read'; opts.MissingRule = 'fill'; opts.ExtraColumnsRule ='ignore';
Настройте PartialFieldRule
Частичные поля происходят, когда функция импорта достигает символа конца строки, прежде чем полная переменная ширина будет пересечена. Например, в этом предварительном просмотре, последних трех строках из файла fixed_width_patients_subset_messy.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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.