exponenta event banner

delimitedTextImportOptions

Объект параметров импорта для разделенного текста

Описание

A DelimitedTextImportOptions позволяет указать, как MATLAB ® импортирует табличные данные из текстовых файлов с разделителями. Объект содержит свойства, управляющие процессом импорта данных, включая обработку ошибок и отсутствующих данных.

Создание

Можно создать DelimitedTextImportOptions с использованием либо detectImportOptions функции или delimitedTextImportOptions функция (описана здесь):

  • Использовать detectImportOptions для обнаружения и заполнения свойств импорта на основе содержимого текстового файла с разделителями, указанного в filename.

    opts = detectImportOptions(filename);

  • Использовать delimitedTextImportOptions для определения свойств импорта на основе требований импорта.

Описание

пример

opts = delimitedTextImportOptions создает DelimitedTextImportOptions объект с одной переменной.

пример

opts = delimitedTextImportOptions('NumVariables',numVars) создает объект с числом переменных, указанным в numVars.

пример

opts = delimitedTextImportOptions(___,Name,Value) задает дополнительные свойства для DelimitedTextImportOptions с использованием одного или нескольких аргументов пары имя-значение.

Входные аргументы

развернуть все

Число переменных, указанное как положительное скалярное целое число.

Свойства

развернуть все

Свойства переменной

Имена переменных, определяемые как массив ячеек символьных векторов или строковый массив. VariableNames содержит имена, используемые при импорте переменных.

Если данные содержат N переменные, но имена переменных не указаны, затем VariableNames свойство содержит {'Var1','Var2',...,'VarN'}.

Для поддержки недопустимых идентификаторов MATLAB в качестве имен переменных, например имен переменных, содержащих пробелы и символы, отличные от ASCII, задайте значение VariableNamingRule кому 'preserve'.

Пример: opts.VariableNames возвращает имена текущих (обнаруженных) переменных.

Пример: opts.VariableNames(3) = {'Height'} изменяет имя третьей переменной на Height.

Типы данных: char | string | cell

Флаг для сохранения имен переменных, указанный как разделенная запятыми пара, состоящая из VariableNamingRule и либо 'modify' или 'preserve'.

  • 'modify' - Преобразовать недопустимые имена переменных (согласно определению isvarname к допустимым идентификаторам MATLAB.

  • 'preserve' - Сохранение имен переменных, которые не являются допустимыми идентификаторами MATLAB, например имен переменных, содержащих пробелы и символы, не относящиеся к ASCII.

Начиная с R2019b имена переменных и строк могут содержать любые символы, включая пробелы и символы, не относящиеся к ASCII. Кроме того, они могут начинаться с любых символов, а не только букв. Имена переменных и строк не должны быть допустимыми идентификаторами MATLAB (согласно определению isvarname функция). Чтобы сохранить эти имена переменных и строк, задайте значение VariableNamingRule кому 'preserve'.

Типы данных: char | string

Тип данных переменной, указанный как массив ячеек символьных векторов, или строковый массив, содержащий набор допустимых имен типов данных. VariableTypes свойство определяет типы данных, используемые при импорте переменных.

Чтобы обновить VariableTypes свойство, используйте setvartype функция.

Пример: opts.VariableTypes возвращает текущие типы данных переменных.

Пример: opts = setvartype(opts,'Height',{'double'}) изменение типа данных переменной Height кому double.

Подмножество импортируемых переменных, указанное как символьный вектор, строковый скаляр, массив ячеек символьных векторов, строковый массив или массив числовых индексов.

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

Введите параметры импорта переменных, возвращаемые в виде массива объектов параметров импорта переменных. Массив содержит объект, соответствующий каждой переменной, указанной в VariableNames собственность. Каждый объект в массиве содержит свойства, поддерживающие импорт данных с определенным типом данных.

Параметры переменных поддерживают следующие типы данных: числовые, текстовые, logical, datetime, или categorical.

Чтобы запросить текущие (или обнаруженные) параметры переменной, используйте getvaropts функция.

Чтобы задать и настроить параметры переменной, используйте setvaropts функция.

Пример: opts.VariableOptions возвращает коллекцию VariableImportOptions объекты, по одному, соответствующие каждой переменной в данных.

Пример: getvaropts(opts,'Height') возвращает значение VariableImportOptions объект для Height переменная.

Пример: opts = setvaropts(opts,'Height','FillValue',0) устанавливает FillValue свойство для переменной Height кому 0.

Свойства расположения

Расположение данных, указанное как положительное скалярное целое число или N-около-2 массив положительных скалярных целых чисел. Определить DataLines используя одну из этих форм.

Укажите как

Описание

n

Укажите первую строку, содержащую данные. Задание значения с помощью n устанавливает значение DataLines свойство для [n inf]. Функция импорта считывает все строки между n и конец файла.

n должно быть положительным целым числом, большим нуля.

[n1 n2]

Укажите диапазон строк, содержащий данные. n1 является первой строкой, которая содержит данные и n2 - последняя строка, содержащая данные.

Значения в массиве [n1 n2] должны быть ненулевыми положительными целыми числами и n2 должно быть больше, чем n1.

[n1 n2; n3 n4;...]

Укажите несколько диапазонов строк для чтения с помощью N-около-2 массив, содержащий N различные диапазоны линий.

Допустимый массив из нескольких диапазонов строк должен:

  • Задайте диапазоны строк в порядке возрастания, т.е. первый диапазон строк, указанный в массиве, появится в файле перед другими диапазонами строк.

  • Содержат только неперекрывающиеся диапазоны линий.

При указании нескольких диапазонов линий используйте Inf только при указании конца последнего диапазона строк в массиве. Например, [1 3; 5 6; 8 Inf].

Пример: 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 указан как 0, а затем имена строк не импортируются. В противном случае импортируйте имена строк из указанного столбца.

Пример: opts.RowNamesColumn = 2;

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

Расположение имен переменных, указанное как положительное скалярное целое число. VariableNamesLine свойство указывает номер строки, в которой расположены имена переменных.

Если VariableNamesLine указывается как 0, а затем имена переменных не импортируются. В противном случае импортируйте имена переменных из указанной строки.

Пример: opts.VariableNamesLine = 6;

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

Расположение описания переменной, указанное как положительное скалярное целое число. VariableDescriptionsLine свойство указывает номер строки, в которой находятся описания переменных.

Если VariableDescriptionsLine указывается как 0, а затем описания переменных не импортируются. В противном случае импортируйте описания переменных из указанной строки.

Пример: opts.VariableDescriptionsLine = 7;

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

Расположение переменных единиц, указанное как положительное скалярное целое число. VariableUnitsLine свойство указывает номер строки, в которой расположены переменные единицы измерения.

Если VariableUnitsLine указан как 0, то не импортируйте переменные единицы измерения. В противном случае импортируйте переменные единицы измерения из указанной строки.

Пример: opts.VariableUnitsLine = 8;

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

Свойства разделенного текста

Символы разделителя полей в текстовом файле с разделителями, указанные как вектор символов, скаляр строк, массив ячеек векторов символов или массив строк.

Пример: 'Delimiter','|'

Пример: 'Delimiter',{';','*'}

Типы данных: char | string | cell

Символы, обрабатываемые как пробелы, обозначаемые как вектор символов или строковый скаляр, содержащий один или несколько символов.

Пример: 'Whitespace',' _'

Пример: 'Whitespace','?!.,'

Символы конца строки, указанные как вектор символов, скаляр строк, массив ячеек векторов символов или массив строк.

Пример: 'LineEnding','\n'

Пример: 'LineEnding','\r\n'

Пример: 'LineEnding',{'\b',':'}

Типы данных: char | string | cell

Стиль комментариев, заданный как символьный вектор, строковый скаляр, массив ячеек символьных векторов или строковый массив.

Например, чтобы игнорировать текст, следующий за знаком процента в той же строке, укажите CommentStyle как '%'.

Пример: 'CommentStyle',{'/*'}

Типы данных: char | string | cell

Процедура обработки последовательных разделителей в текстовом файле с разделителями, указанном как одно из значений в этой таблице.

Правило последовательных разделителейПоведение
'split'Разделите последовательные разделители на несколько полей.
'join'Соедините разделители в один.
'error'Возвращает ошибку и прерывает операцию импорта.

Типы данных: char | string

Процедура управления ведущими разделителями в текстовом файле с разделителями, указанном как одно из значений в этой таблице.

Правило ведущих разделителейПоведение
'keep'Сохранить разделитель.
'ignore'Игнорировать разделитель.
'error'Возвращает ошибку и прерывает операцию импорта.

Процедура управления конечными разделителями в текстовом файле с разделителями, указанном как одно из значений в этой таблице.

Правило ведущих разделителейПоведение
'keep'Сохранить разделитель.
'ignore'Игнорировать разделитель.
'error'Возвращает ошибку и прерывает операцию импорта.

Схема кодирования символов, связанная с файлом, заданная как разделенная запятыми пара, состоящая из 'Encoding' и 'system' или имя стандартной схемы кодирования символов.

Если кодировка не указана, функция использует автоматическое обнаружение набора символов для определения кодировки при чтении файла.

Пример: 'Encoding','system' использует системную кодировку по умолчанию.

Типы данных: char | string

Правила замены

Процедура управления отсутствующими данными, заданными в качестве одного из значений в этой таблице.

Отсутствующее правилоПоведение
'fill'

Замените отсутствующие данные на содержимое FillValue собственность.

FillValue свойство указано в VariableImportOptions объект импортируемой переменной. Дополнительные сведения о доступе к FillValue свойство, см. getvaropts.

'error'Остановите импорт и выведите сообщение об ошибке с отсутствующей записью и полем.
'omitrow'Опустить строки, содержащие отсутствующие данные.
'omitvar'Опустить переменные, содержащие отсутствующие данные.

Пример: opts.MissingRule = 'omitrow';

Типы данных: char | string

Процедура обработки пустых строк в данных, указанных как 'skip', 'read', или 'error'. Функция импорта интерпретирует пробел как пустой.

Правило пустых строкПоведение
'skip'Пропустите пустые строки.
'read'Импортируйте пустые строки. Функция импорта анализирует пустую строку, используя значения, указанные в VariableWidths, VariableOptions, MissingRuleи другие соответствующие свойства, такие как Whitespace.
'error'Вывод сообщения об ошибке и прекращение операции импорта.

Пример: opts.EmptyLineRule = 'skip';

Типы данных: char | string

Процедура обработки ошибок импорта, указанная как одно из значений в этой таблице.

Правило ошибки импортаПоведение
'fill'

Замените данные, в которых произошла ошибка, на содержимое FillValue собственность.

FillValue свойство указано в VariableImportOptions объект импортируемой переменной. Дополнительные сведения о доступе к FillValue свойство, см. getvaropts.

'error'Остановите импорт и отобразите сообщение об ошибке, содержащее запись и поле, вызывающие ошибки.
'omitrow'Опустить строки, в которых возникают ошибки.
'omitvar'Опустить переменные, в которых возникают ошибки.

Пример: opts.ImportErrorRule = 'omitvar';

Типы данных: char | string

Процедура обработки дополнительных столбцов в данных, указанных как одно из значений в этой таблице.

Правило дополнительных столбцовПоведение
'addvars'

Чтобы импортировать дополнительные столбцы, создайте новые переменные. Если есть N дополнительные столбцы, затем импортировать новые переменные как 'ExtraVar1', 'ExtraVar2',..., 'ExtraVarN'.

ПРИМЕЧАНИЕ: Дополнительные столбцы импортируются как текст с типом данныхchar.

'ignore'Игнорировать дополнительные столбцы данных.
'wrap'Перенос дополнительных столбцов данных в новые записи. Это действие не изменяет число переменных.
'error'Вывод сообщения об ошибке и прекращение операции импорта.

Типы данных: char | string

Функции объекта

getvaroptsПолучение параметров импорта переменных
setvaroptsЗадать параметры импорта переменных
setvartypeЗадать типы переменных данных
previewПросмотр восьми строк из файла с помощью параметров импорта

Примеры

свернуть все

Определение объекта параметров импорта для чтения нескольких переменных из patients.dat.

На основе содержимого файла определите следующие свойства переменных: имена, типы, символ разделителя, начальное расположение данных и правило дополнительных столбцов.

varNames = {'LastName','Gender','Age','Location','Height','Weight','Smoker'} ;
varTypes = {'char','categorical','int32','char','double','double','logical'} ;
delimiter = ',';
dataStartLine = 2;
extraColRule = 'ignore';

Используйте delimitedTextImportOptions функция и информация о переменной для инициализации объекта параметров импорта opts.

opts = delimitedTextImportOptions('VariableNames',varNames,...
                                'VariableTypes',varTypes,...
                                'Delimiter',delimiter,...
                                'DataLines', dataStartLine,...
                                'ExtraColumnsRule',extraColRule); 

Используйте preview функция с объектом параметров импорта для предварительного просмотра данных.

preview('patients.dat',opts)
ans=8×7 table
      LastName      Gender    Age              Location               Height    Weight    Smoker
    ____________    ______    ___    _____________________________    ______    ______    ______

    {'Smith'   }    Male      38     {'County General Hospital'  }      71       176      false 
    {'Johnson' }    Male      43     {'VA Hospital'              }      69       163      false 
    {'Williams'}    Female    38     {'St. Mary's Medical Center'}      64       131      false 
    {'Jones'   }    Female    40     {'VA Hospital'              }      67       133      false 
    {'Brown'   }    Female    49     {'County General Hospital'  }      64       119      false 
    {'Davis'   }    Female    46     {'St. Mary's Medical Center'}      68       142      false 
    {'Miller'  }    Female    33     {'VA Hospital'              }      64       142      false 
    {'Wilson'  }    Male      40     {'VA Hospital'              }      68       180      false 

Импорт данных с помощью readtable.

T = readtable('patients.dat',opts);
whos T
  Name        Size            Bytes  Class    Attributes

  T         100x7             30563  table              

Совет

  • Представлен в:

    • R2016b — DelimitedTextImportOptions объект

    • R2018b — delimitedTextImportOptions функция

См. также

|