detectImportOptions

Создайте настройки импорта на основе содержимого файла

Синтаксис

opts = detectImportOptions(filename)
opts = detectImportOptions(filename,Name,Value)

Описание

пример

opts = detectImportOptions(filename) определяет местоположение таблицы в файле и возвращает настройки импорта для импорта таблицы. Можно изменить объект опций и использовать его с readtable, чтобы управлять, как MATLAB® импортирует табличные данные. Тип возвращенных опций зависит от расширения файла. Например, функция возвращает объект SpreadsheetImportOptions, если filename является файлом электронной таблицы. Однако функция возвращает объект DelimitedTextImportOptions или FixedWidthImportOptions, если filename является текстовым файлом.

пример

opts = detectImportOptions(filename,Name,Value) определяет местоположение таблицы в файле с помощью дополнительных параметров, заданных одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

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

Создайте объект настроек импорта из файла.

opts = detectImportOptions('patients.xls')
opts = 
  SpreadsheetImportOptions with properties:

   Sheet Properties:
                        Sheet: ''

   Replacement Properties:
                  MissingRule: 'fill'
              ImportErrorRule: 'fill'

   Variable Import Properties: Set types by name using setvartype
                VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
                VariableTypes: {'char', 'char', 'double' ... and 7 more}
        SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
              VariableOptions: Show all 10 VariableOptions 
	Access VariableOptions sub-properties using setvaropts/getvaropts

   Range Properties:
                    DataRange: 'A2' (Start Cell)
           VariableNamesRange: 'A1'
                RowNamesRange: ''
           VariableUnitsRange: ''
    VariableDescriptionsRange: '' 
	To display a preview of the table, use preview

Измените объект опций задать который переменные импортировать.

opts.SelectedVariableNames = {'Systolic','Diastolic'};

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

T = readtable('patients.xls',opts);
summary(T)
Variables:

    Systolic: 100x1 double

        Values:

            Min          109    
            Median       122    
            Max          138    

    Diastolic: 100x1 double

        Values:

            Min            68    
            Median       81.5    
            Max            99    

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

Создайте объект настроек импорта из текстового файла.

opts = detectImportOptions('airlinesmall.csv')
opts = 
  DelimitedTextImportOptions with properties:

   Format Properties:
                    Delimiter: {','}
                   Whitespace: '\b\t '
                   LineEnding: {'\n'  '\r'  '\r\n'}
                 CommentStyle: {}
    ConsecutiveDelimitersRule: 'split'
        LeadingDelimitersRule: 'keep'
                EmptyLineRule: 'skip'
                     Encoding: 'UTF-8'

   Replacement Properties:
                  MissingRule: 'fill'
              ImportErrorRule: 'fill'
             ExtraColumnsRule: 'addvars'

   Variable Import Properties: Set types by name using setvartype
                VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
                VariableTypes: {'double', 'double', 'double' ... and 26 more}
        SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableOptions: Show all 29 VariableOptions 
	Access VariableOptions sub-properties using setvaropts/getvaropts

   Location Properties:
                    DataLines: [2 Inf]
            VariableNamesLine: 1
               RowNamesColumn: 0
            VariableUnitsLine: 0
     VariableDescriptionsLine: 0 
	To display a preview of the table, use preview

Исследуйте свойство Type переменных TaxiIn и TaxiOut.

getvaropts(opts,{'TaxiIn','TaxiOut'})
ans = 
  1x2 TextVariableImportOptions array with properties:

    Name
    Type
    FillValue
    TreatAsMissing
    QuoteRule
    Prefixes
    Suffixes
    EmptyFieldRule
    WhitespaceRule

Измените тип переменных TaxiIn и TaxiOut к double.

 opts = setvartype(opts,{'TaxiIn','TaxiOut'},'double');

Задайте подмножество переменных, чтобы импортировать и исследовать.

opts.SelectedVariableNames = {'TaxiIn','TaxiOut'};

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

T = readtable('airlinesmall.csv',opts);
summary(T)
Variables:

    TaxiIn: 123523x1 double

        Values:

            Min            0      
            Median         5      
            Max            1451   
            NumMissing     37383  

    TaxiOut: 123523x1 double

        Values:

            Min             0      
            Median          13     
            Max             755    
            NumMissing      37364  

Импортируйте текстовые данные как тип данных String путем определения настроек импорта.

Создайте объект опций для файла.

opts = detectImportOptions('outages.csv');

Задайте который переменные импортировать использование readtable, и затем показать сводные данные. Типом данных выбранных переменных является char.

opts.SelectedVariableNames = {'Region','Cause'};
T = readtable('outages.csv',opts);
summary(T)
Variables:

    Region: 1468x1 cell array of character vectors

    Cause: 1468x1 cell array of character vectors

Импортируйте текстовые данные как тип данных string, и затем создайте настройки импорта путем определения пары "имя-значение" TextType.

opts = detectImportOptions('outages.csv','TextType','string');

Задайте который переменные импортировать использование readtable, и затем показать сводные данные. Типом данных выбранных переменных является теперь string.

opts.SelectedVariableNames = {'Region','Cause'};
T = readtable('outages.csv',opts);
summary(T)
Variables:

    Region: 1468x1 string

    Cause: 1468x1 string

Входные параметры

свернуть все

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

В зависимости от местоположения вашего файла filename может взять одну из следующих форм.

Местоположение

Форма

Текущая папка или папка на пути MATLAB

Задайте имя файла в filename.

Пример: 'myFile.txt'

Файл в папке

Если файл не находится в текущей папке или в папке на пути MATLAB, то задайте полное имя или относительный путь в filename.

Пример: 'C:\myFolder\myFile.xlsx'

Пример: '\imgDir\myFile.txt'

Удаленное местоположение

Если файл хранится в удаленном местоположении, то filename должен содержать полный путь файла, заданного как интернационализировавший идентификатор ресурса (IRI) формы:

scheme_name://path_to_file/my_file.ext

На основе вашего удаленного местоположения scheme_name может быть одним из значений в этой таблице.

Удаленное местоположениеscheme_name
Amazon S3™s3
Устройство хранения данных Windows Azure® Blobwasb, wasbs
HDFS™hdfs

Для получения дополнительной информации смотрите работу с Удаленными данными.

Пример: 's3://bucketname/path_to_file/my_file.csv'

Если filename включает расширение файла, то detectImportOptions определяет формат файла от расширения. В противном случае необходимо задать пару "имя-значение" 'FileType', чтобы указать на тип файла.

Функция detectImportOptions поддерживает эти расширения файла: .txt, .dat, .csv, .xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx и .ods.

Примечание

Расширения файла .xlsb и .ods только поддержаны на платформах с Excel® для Windows®.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'FileType','text'

Параметры

свернуть все

Тип файла, заданного как пара, разделенная запятой, состоящая из 'FileType' и или 'text' или 'spreadsheet'.

Задайте аргумент пары "имя-значение" 'FileType', когда filename не включает расширение файла или если расширение отличается от одного из них:

  • .txt, .dat или .csv для файлов разделенного текста

  • .xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx или .ods для файлов электронной таблицы

Примечание

Расширения файла .xlsb и .ods только поддержаны на платформах с Excel для Windows.

Пример: 'FileType','text'

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

Введите для данных об импортируемом тексте, заданных как пара, разделенная запятой, состоящая из 'TextType' и или 'char' или 'string'.

  • 'char' Импортируйте текстовые данные в MATLAB как векторы символов.

  • Строка Импортируйте текстовые данные в MATLAB как строковые массивы.

Пример: 'TextType','char'

Введите для импортированных данных о дате и времени, заданных как пара, разделенная запятой, состоящая из 'DatetimeType' и одно из этих значений: 'datetime', 'text' или 'exceldatenum'. Значение 'exceldatenum' применим только для файлов электронной таблицы и не допустим для текстовых файлов.

ЗначениеВведите для импортированных данных о дате и времени
'datetime'

MATLAB тип данных datetime

Для получения дополнительной информации смотрите datetime.

'text'

Если 'DatetimeType' задан как 'text', то тип для импортированных данных о дате и времени зависит от значения, заданного в параметре 'TextType':

  • Если 'TextType' установлен в 'char', то функция импорта возвращает даты как массив ячеек из символьных векторов.

  • Если 'TextType' установлен в 'string', то функция импорта возвращает даты как массив строк.

'exceldatenum'

Excel последовательные числа даты

Последовательный номер даты является одним номером, равным номеру дней с данной ссылочной даты. Excel последовательные числа даты использует различную ссылочную дату, чем MATLAB последовательные числа даты. Для получения дополнительной информации о датах Excel смотрите https://support.microsoft.com/en-us/kb/214330.

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

Ожидаемое количество переменных, заданных как пара, разделенная запятой, состоящая из 'ExpectedNumVariables' и положительного целого числа. Если незаданный, функция импорта автоматически обнаруживает количество переменных.

Типы данных: single | double

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

Способы задать RangeОписание

Запуск ячейки

'Cell' или [row col]

Задайте стартовую ячейку для данных как вектор символов или представьте в виде строки скаляр или два элемента числовой вектор.

  • Вектор символов или скаляр строки, содержащий букву столбца и номер строки с помощью обозначения Excel A1. Например, A5 является идентификатором для ячейки на пересечении столбца A и строка 5.

  • Два элемента числовой вектор формы [row col], указывающий на стартовую строку и столбец.

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

Пример: 'A5' или [5 1]

Прямоугольная область значений

'Corner1:Corner2' или [r1 c1 r2 c2]

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

  • 'Corner1:Corner2' — Задайте область значений с помощью Corner1 и Corner2, которые являются двумя противостоящими углами, которые задают область, чтобы читать в обозначении Excel A1. Например, 'C2:N15'.

  • [r1 c1 r2 c2] — Задайте область значений с помощью четырех элементов числовой вектор, содержащий начинать-строку, начальный столбец, строку конца и столбец конца. Например, [2 3 15 13].

Функция импорта только считывает данные, содержавшиеся в заданной области значений. Любые пустые поля в заданной области значений импортируются как недостающие ячейки.

Область значений строки или область значений столбца

'Row1:Row2' или 'Column1:Column2'

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

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

Пример: '5:500'

Также задайте область значений путем идентификации начала и конечного использования столбцов буквы столбца Excel или числа.

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

Количество столбцов в заданной области значений должно совпадать с номером, заданным в свойстве ExpectedNumVariables.

Пример: 'A:K'

Запуск номера строки

n

Задайте первую строку, содержащую данные с помощью индекса строки положительной скалярной величины.

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

Пример 5

Именованная область значений Excel

'NamedRange'

В Excel можно создать имена, чтобы идентифицировать области значений в электронной таблице. Например, можно выбрать прямоугольный фрагмент электронной таблицы и вызвать ее 'myTable'. Если такие именованные области значений существуют в электронной таблице, то функция импорта может считать ту область значений с помощью своего имени.

Пример: 'Range','myTable'

Незаданный или пустой

''

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

Пример: 'Range',''

Примечание: Используемая Область значений относится к прямоугольному фрагменту электронной таблицы, которая на самом деле содержит данные. Функция импорта автоматически обнаруживает используемую область значений путем обрезки любого продвижения и запаздывающих строк и столбцов, которые не содержат данные. Текст, который является только пробелом, рассматривается данными и получен в используемой области значений.

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

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

Пример: 'NumHeaderLines',7

Типы данных: single | double

Индикатор для чтения первой строки как имена переменных, заданные как пара, разделенная запятой, состоящая из 'ReadVariableNames' и или true или false. Если незаданный, readtable автоматически обнаруживает присутствие имен переменных.

Индикатор

Описание

true

Используйте, когда первая строка области, которая будет читать, будет содержать имена переменных для таблицы. readtable создает переменную, с обнаруженным именем переменной, для каждого столбца в T.

false

Используйте, когда первая строка области, которая будет читать, будет содержать данные в таблице. readtable создает имена переменных по умолчанию формы 'Var1',...,'VarN', где N является количеством переменных.

незаданный Когда оставлено незаданный, функция импорта автоматически обнаруживает true или false и доходы соответственно.

Типы данных: логический

Индикатор для чтения первого столбца как строка называет, заданный как пара, разделенная запятой, состоящая из 'ReadRowNames' и или false или true.

Индикатор

Описание

false

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

true

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

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

Типы данных: логический

Параметры для файлов электронной таблицы только

свернуть все

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

СпецификацияПоведение
'' (значение по умолчанию)Импортируйте данные от первого листа.
ИмяИмпортируйте данные с соответствующего имени листа, независимо от порядка листов в файле электронной таблицы.
Целое числоИмпортируйте данные от листа в положении, обозначенном целым числом, независимо от имен листа в файле электронной таблицы.

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

Параметры для текстовых файлов только

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

'Big5'

'ISO-8859-1'

'windows-847'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

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

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

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

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

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

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

Тип выходных данных данных о длительности из текстовых файлов, заданных как пара, разделенная запятой, состоящая из 'DurationType' и или 'duration' или 'text'.

ЗначениеВведите для импортированных данных о длительности
'duration'

MATLAB тип данных duration

Для получения дополнительной информации смотрите duration.

'text'

Если 'DurationType' задан как 'text', то тип для импортированных данных о длительности зависит от значения, заданного в параметре 'TextType':

  • Если 'TextType' установлен в 'char', то функция импорта возвращает данные о длительности как массив ячеек из символьных векторов.

  • Если 'TextType' установлен в 'string', то функция импорта возвращает данные о длительности как массив строк.

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

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

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

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

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

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

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

Когда функция импорта находит недостающие экземпляры, она использует спецификацию в свойстве MissingRule определить соответствующие меры.

Пример: 'TreatAsMissing',{'NA','TBD'} дает функции импорта команду обрабатывать любое вхождение NA или TBD как недостающие поля.

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

Символы, которые указывают на тысячи группировки в числовых переменных, заданных как вектор символов, или представляют скаляр в виде строки. Тысячи группирующихся символов действуют как визуальные разделители, группируя номер в каждых трех значениях места. Функция импорта использует символы в свойстве ThousandsSeparator интерпретировать импортируемые числа.

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

Символы, указывающие на десятичный разделитель в числовых переменных, заданных как вектор символов или скаляр строки. Функция импорта использует свойство DecimalSeparator отличить целую часть номера от десятичной части.

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

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

Удалите нечисловые символы из числовой переменной, заданной как логический true или false.

Типы данных: логический

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

свернуть все

Настройки импорта для заданного файла, возвращенного как объект SpreadsheetImportOptions или объект DelimitedTextImportOptions. Тип объекта опций зависит от типа заданного файла. Для текстовых файлов (.txt, .dat или .csv), функция detectImportOptions возвращает объект DelimitedTextImportOptions или FixedWidthImportOptions. Для файлов электронной таблицы (.xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx или .ods), функция detectImportOptions возвращает объект SpreadsheetImportOptions.

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

Для файлов электронной таблицыДля текстовых файлов
VariableNames (если таковые имеются)VariableNames (если таковые имеются)
VariableTypesVariableTypes
DataRangeDataLine
VariableNamesRangeVariableNamesLine
 Delimiter
 LeadingDelimitersRule (если пробел является разделителем),
 ConsecutiveDelimitersRule (если пробел является разделителем),
 PartialFieldRule (для файлов с фиксированной шириной)

Введенный в R2017b