Настройки импорта возражают для текстовых файлов фиксированной ширины
FixedWidthImportOptions
объект позволяет вам задать, как MATLAB® импортирует табличные данные фиксированной ширины из текстовых файлов. Объект содержит свойства, которые управляют процессом импорта данных, включая обработку ошибок и недостающих данных.
Можно создать FixedWidthImportOptions
объект с помощью любого fixedWidthImportOptions
функция (описанный здесь) или detectImportOptions
функция:
Используйте fixedWidthImportOptions
задавать свойства импорта на основе ваших требований импорта.
Используйте detectImportOptions
обнаружить и заполнить свойства импорта на основе содержимого текстового файла фиксированной ширины, заданного в filename
.
opts = detectImportOptions(filename)
opts = fixedWidthImportOptions
создает FixedWidthImportOptions
объект с одной переменной.
opts = fixedWidthImportOptions('NumVariables',
создает объект с количеством переменных, заданных в numVars
)numVars
.
opts = fixedWidthImportOptions(___,
задает дополнительные свойства для Name,Value
)FixedWidthImportOptions
объект с помощью одного или нескольких аргументов пары "имя-значение".
numVars
— Количество переменныхКоличество переменных, заданных как положительное скалярное целое число.
VariableNames
Имена переменныхИмена переменных, заданные как массив ячеек из символьных векторов или массив строк. VariableNames
свойство содержит имена, чтобы использовать при импорте переменных.
Если данные содержат N
переменные, но никакие имена переменных обнаруживаются, затем VariableNames
свойство содержит {'Var1','Var2',...,'VarN'}
.
Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена varible, содержащие пробелы и символы non-ASCII, устанавливают PreserveVariableNames
параметр к true
.
Пример: opts.VariableNames
возвращает текущие (обнаруженные) имена переменных.
Пример: opts.VariableNames(3) = {'Height'}
изменяет название третьей переменной к Height
.
Типы данных: char |
string
| cell
PreserveVariableNames
— Отметьте, чтобы сохранить имена переменныхfalse
(значение по умолчанию) | true
Отметьте, чтобы сохранить имена переменных, заданные как разделенная запятой пара, состоящая из PreserveVariableNames
и любой true
, или false
.
true
— Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают символы non-ASCII и пробелы.
false
— Преобразуйте недопустимые имена переменных (как определено isvarname
функция) к допустимым идентификаторам MATLAB.
Начиная в R2019b, имена переменных и имена строки могут включать любые символы, включая символы non-ASCII и пробелы. Кроме того, они могут запустить с любых символов, не только обозначает буквами. Переменная и имена строки не должны быть допустимыми идентификаторами MATLAB (как определено isvarname
функция. Чтобы сохранить эти имена переменных и имена строки, установите PreserveVariableNames
к true
.
VariableWidths
— Ширина поля переменныхШирина поля переменных в текстовом файле фиксированной ширины, заданном как вектор положительных целочисленных значений. Каждое положительное целое число в векторе соответствует количеству символов в поле, которое составляет переменную. VariableWidths
свойство содержит запись, соответствующую каждой переменной, заданной в VariableNames
свойство.
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
импортировать только то подмножество.
Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена varible, содержащие пробелы и символы non-ASCII, устанавливают PreserveVariableNames
параметр к true
.
Пример: 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
— Строка называет местоположение
(значение по умолчанию) | положительное скалярное целое числоСтрока называет местоположение, заданное как положительное скалярное целое число. RowNamesColumn
свойство задает местоположение столбца, содержащего имена строки.
Если RowNamesColumn
задан как 0, затем не импортируйте имена строки. В противном случае импортируйте имена строки из заданного столбца.
Пример: opts.RowNamesColumn = 2;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
VariableNamesLine
— Местоположение имен переменных
(значение по умолчанию) | положительное скалярное целое числоМестоположение имен переменных, заданное как положительное скалярное целое число. VariableNamesLine
свойство задает номер строки, где имена переменных расположены.
Если VariableNamesLine
задан как 0, затем не импортируйте имена переменных. В противном случае импортируйте имена переменных из заданной линии.
Пример: opts.VariableNamesLine = 6;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
VariableDescriptionsLine
— Местоположение описания переменной
(значение по умолчанию) | положительное скалярное целое числоМестоположение описания переменной, заданное как положительное скалярное целое число. VariableDescriptionsLine
свойство задает номер строки, где описания переменной расположены.
Если VariableDescriptionsLine
задан как 0, затем не импортируйте описания переменной. В противном случае импортируйте описания переменной из заданной линии.
Пример: opts.VariableDescriptionsLine = 7;
Типы данных: single
| double
| uint8
| uint16
| uint32
| uint64
VariableUnitsLine
— Переменное модульное местоположение
(значение по умолчанию) | положительное скалярное целое числоПеременное модульное местоположение, заданное как положительное скалярное целое число. 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'
чтение
, или '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
MissingRule
, и 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
Введенный в:
R2017a FixedWidthImportOptions
объект
R2018b — fixedWidthImportOptions
функция
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.