Объект параметров импорта для текстовых файлов фиксированной ширины
A FixedWidthImportOptions позволяет указать, как MATLAB ® импортирует табличные данные фиксированной ширины из текстовых файлов. Объект содержит свойства, управляющие процессом импорта данных, включая обработку ошибок и отсутствующих данных.
Можно создать FixedWidthImportOptions с использованием либо fixedWidthImportOptions функция (описана здесь) или detectImportOptions функция:
Использовать fixedWidthImportOptions для определения свойств импорта на основе требований импорта.
Использовать detectImportOptions для обнаружения и заполнения свойств импорта на основе содержимого текстового файла фиксированной ширины, указанного в filename.
opts = detectImportOptions(filename)
opts = fixedWidthImportOptions создает FixedWidthImportOptions объект с одной переменной.
opts = fixedWidthImportOptions('NumVariables', создает объект с числом переменных, указанным в numVars)numVars.
numVars - Количество переменныхЧисло переменных, указанное как положительное скалярное целое число.
VariableNames - Имена переменныхИмена переменных, определяемые как массив ячеек символьных векторов или строковый массив. VariableNames содержит имена, используемые при импорте переменных.
Если данные содержат N переменные, но имена переменных не указаны, затем VariableNames свойство содержит {'Var1','Var2',...,'VarN'}.
Для поддержки недопустимых идентификаторов MATLAB в качестве имен переменных, например имен переменных, содержащих пробелы и символы, отличные от ASCII, задайте значение VariableNamingRule кому 'preserve'.
Пример: opts.VariableNames возвращает имена текущих (обнаруженных) переменных.
Пример: opts.VariableNames(3) = {'Height'} изменяет имя третьей переменной на Height.
Типы данных: char | string | cell
VariableNamingRule - Флаг для сохранения имен переменных'modify' (по умолчанию) | 'preserve'Флаг для сохранения имен переменных, указанный как разделенная запятыми пара, состоящая из VariableNamingRule и либо 'modify' или 'preserve'.
'modify' - Преобразовать недопустимые имена переменных (согласно определению isvarname к допустимым идентификаторам MATLAB.
'preserve' - Сохранение имен переменных, которые не являются допустимыми идентификаторами MATLAB, например имен переменных, содержащих пробелы и символы, не относящиеся к ASCII.
Начиная с R2019b имена переменных и строк могут содержать любые символы, включая пробелы и символы, не относящиеся к ASCII. Кроме того, они могут начинаться с любых символов, а не только букв. Имена переменных и строк не должны быть допустимыми идентификаторами MATLAB (согласно определению isvarname функция). Чтобы сохранить эти имена переменных и строк, задайте значение VariableNamingRule кому 'preserve'.
Типы данных: char | string
VariableWidths - Ширина полей переменныхШирина полей переменных в текстовом файле фиксированной ширины, заданная как вектор положительных целых значений. Каждое положительное целое число в векторе соответствует количеству символов в поле, которое составляет переменную. VariableWidths содержит запись, соответствующую каждой переменной, указанной в VariableNames собственность.
VariableTypes - Типы данных переменнойТип данных переменной, указанный как массив ячеек символьных векторов, или строковый массив, содержащий набор допустимых имен типов данных. VariableTypes свойство определяет типы данных, используемые при импорте переменных.
Чтобы обновить VariableTypes свойство, используйте setvartype функция.
Пример: opts.VariableTypes возвращает текущие типы данных переменных.
Пример: opts = setvartype(opts,'Height',{'double'}) изменение типа данных переменной Height кому double.
SelectedVariableNames - подмножество переменных для импорта;Подмножество импортируемых переменных, указанное как символьный вектор, строковый скаляр, массив ячеек символьных векторов, строковый массив или массив числовых индексов.
SelectedVariableNames должно быть подмножеством имен, содержащихся в VariableNames собственность. По умолчанию SelectedVariableNames содержит все имена переменных из VariableNames , что означает, что все переменные импортируются.
Используйте SelectedVariableNames свойство для импорта только интересующих переменных. Укажите подмножество переменных с помощью SelectedVariableNames собственность и использование readtable для импорта только этого подмножества.
Для поддержки недопустимых идентификаторов MATLAB в качестве имен переменных, например имен переменных, содержащих пробелы и символы, отличные от ASCII, задайте значение VariableNamingRule кому 'preserve'.
Пример: 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-около-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 - Схема кодирования символов'' | 'UTF-8' | 'system' | 'ISO-8859-1' | 'windows-1251' | 'windows-1252' | ...Схема кодирования символов, связанная с файлом, заданная как разделенная запятыми пара, состоящая из 'Encoding' и 'system' или имя стандартной схемы кодирования символов.
Если кодировка не указана, функция использует автоматическое обнаружение набора символов для определения кодировки при чтении файла.
Пример: 'Encoding','system' использует системную кодировку по умолчанию.
Типы данных: char | string
PartialFieldRule - Процедура обработки частичных полей'keep' | 'fill' | 'omitrow' | 'omitvar' | 'wrap' | 'error'Процедура обработки частичных полей в данных, указанных как одно из значений в этой таблице.
| Правило частичного поля | Поведение |
|---|---|
'keep' | Сохраните данные частичного поля и преобразуйте текст в соответствующий тип данных. В некоторых случаях, когда функция импорта не может интерпретировать частичные данные, может возникнуть ошибка преобразования. |
'fill' | Замените отсутствующие данные на содержимое |
'omitrow' | Опустить строки, содержащие частичные данные. |
'omitvar' | Опустить переменные, содержащие частичные данные. |
'wrap' | Начните чтение следующей строки символов. |
'error' | Вывод сообщения об ошибке и прекращение операции импорта. |
Пример: opts.PartialFieldRule = 'keep';
Типы данных: char | string
EmptyLineRule - Процедура обработки пустых строк'skip' | 'read' | 'error'Процедура обработки пустых строк в данных, указанных как 'skip', 'read', или 'error'. Функция импорта интерпретирует пробел как пустой.
| Правило пустых строк | Поведение |
|---|---|
'skip' | Пропустите пустые строки. |
'read' | Импортируйте пустые строки. Функция импорта анализирует пустую строку, используя значения, указанные в VariableWidths, VariableOptions, MissingRuleи другие соответствующие свойства, такие как Whitespace. |
'error' | Вывод сообщения об ошибке и прекращение операции импорта. |
Пример: opts.EmptyLineRule = 'skip';
Типы данных: char | string
MissingRule - Процедура управления отсутствующими данными'fill' (по умолчанию) | 'error' | 'omitrow' | 'omitvar'Процедура управления отсутствующими данными, заданными в качестве одного из значений в этой таблице.
| Отсутствующее правило | Поведение |
|---|---|
'fill' | Замените отсутствующие данные на содержимое |
'error' | Остановите импорт и выведите сообщение об ошибке с отсутствующей записью и полем. |
'omitrow' | Опустить строки, содержащие отсутствующие данные. |
'omitvar' | Опустить переменные, содержащие отсутствующие данные. |
Пример: opts.MissingRule = 'omitrow';
Типы данных: char | string
ImportErrorRule - Процедура обработки ошибок импорта'fill' (по умолчанию) | 'error' | 'omitrow' | 'omitvar'Процедура обработки ошибок импорта, указанная как одно из значений в этой таблице.
| Правило ошибки импорта | Поведение |
|---|---|
'fill' | Замените данные, в которых произошла ошибка, на содержимое |
'error' | Остановите импорт и отобразите сообщение об ошибке, содержащее запись и поле, вызывающие ошибки. |
'omitrow' | Опустить строки, в которых возникают ошибки. |
'omitvar' | Опустить переменные, в которых возникают ошибки. |
Пример: opts.ImportErrorRule = 'omitvar';
Типы данных: char | string
ExtraColumnsRule - Процедура обработки дополнительных столбцов'addvars' | 'ignore' | 'wrap' | 'error'Процедура обработки дополнительных столбцов в данных, указанных как одно из значений в этой таблице.
| Правило дополнительных столбцов | Поведение |
|---|---|
'addvars' | Чтобы импортировать дополнительные столбцы, создайте новые переменные. Если есть ПРИМЕЧАНИЕ: Дополнительные столбцы импортируются как текст с типом данных |
'ignore' | Игнорировать дополнительные столбцы данных. |
'wrap' | Перенос дополнительных столбцов данных в новые записи. Это действие не изменяет число переменных. |
'error' | Вывод сообщения об ошибке и прекращение операции импорта. |
Типы данных: char | string
getvaropts | Получение параметров импорта переменных |
setvaropts | Задать параметры импорта переменных |
setvartype | Задать типы переменных данных |
preview | Просмотр восьми строк из файла с помощью параметров импорта |
Проверьте текстовый файл в формате фиксированной ширины, инициализируйте объект параметров импорта и используйте объект для импорта таблицы из текстового файла.
Загрузка и просмотр текстового файла фиксированной ширины
Загрузить файл fixed_width_patients_subset_perfect.txt и предварительный просмотр его содержимого в текстовом редакторе. Снимок экрана показывает, что файл содержит данные в формате фиксированной ширины.
filename = '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 = '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
{0×0 char } <undefined> NaN {0×0 char } 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
{0×0 char } <undefined> NaN {0×0 char } NaN NaN false
{0×0 char } <undefined> NaN {0×0 char } 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.