exponenta event banner

readcell

Чтение массива ячеек из файла

Описание

пример

C = readcell(filename) создает массив ячеек, считывая из файла данные, ориентированные на столбцы.

readcell определяет формат файла из расширения файла:

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

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

пример

C = readcell(filename,opts) дополнительно использует параметры импорта opts.

пример

C = readcell(___,Name,Value) создает массив ячеек из файла с дополнительными параметрами, заданными одним или несколькими аргументами пары имя-значение. Перед заданием пар имя-значение используйте любой из входных аргументов из предыдущих синтаксисов.

Чтобы задать определенные параметры импорта для данных, можно либо использовать opts или можно указать пары имя-значение. При указании пар имя-значение в дополнение к opts, то readcell поддерживает только следующие пары имя-значение:

  • Текстовые файлы - DateLocale, Encoding

  • Файлы электронных таблиц - Sheet, UseExcel

Примеры

свернуть все

Отображение содержимого basic_cell.txt, а затем импортировать смешанные данные в массив ячеек.

type basic_cell.txt
1,2,3
hello,world,NaN
10-Oct-2018 10:27:56,1,
C = readcell('basic_cell.txt')
C=3×3 cell array
    {[                   1]}    {[    2]}    {[        3]}
    {'hello'               }    {'world'}    {[      NaN]}
    {[10-Oct-2018 10:27:56]}    {[    1]}    {1x1 missing}

Импорт смешанных табличных данных из basic_cell.xls в массив ячеек.

C = readcell('basic_cell.xls')
C=3×3 cell array
    {[                   1]}    {[    2]}    {[        3]}
    {'hello'               }    {'world'}    {1x1 missing}
    {[10-Oct-2018 10:27:56]}    {[    1]}    {1x1 missing}

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

Файл электронной таблицы airlinesmall_subset.xlsx содержит данные в нескольких рабочих листах за годы с 1996 по 2008 год. Каждый лист содержит данные за данный год. Предварительный просмотр данных из файла airlinesmall_subset.xlsx. preview функция по умолчанию отображает данные из первого листа.

opts = detectImportOptions('airlinesmall_subset.xlsx');
preview('airlinesmall_subset.xlsx',opts)
ans=8×29 table
    Year    Month    DayofMonth    DayOfWeek    DepTime    CRSDepTime    ArrTime    CRSArrTime    UniqueCarrier    FlightNum     TailNum      ActualElapsedTime    CRSElapsedTime    AirTime    ArrDelay    DepDelay    Origin      Dest      Distance    TaxiIn    TaxiOut    Cancelled    CancellationCode    Diverted    CarrierDelay    WeatherDelay      SDelay      SecurityDelay    LateAircraftDelay
    ____    _____    __________    _________    _______    __________    _______    __________    _____________    _________    __________    _________________    ______________    _______    ________    ________    _______    _______    ________    ______    _______    _________    ________________    ________    ____________    ____________    __________    _____________    _________________

    1996      1          18            4         2117         2120        2305         2259          {'HP'}           415       {'N637AW'}           108                 99            85           6          -3       {'COS'}    {'PHX'}      551         5         18           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1          12            5         1252         1245        1511         1500          {'HP'}           610       {'N905AW'}            79                 75            58          11           7       {'LAX'}    {'PHX'}      370         3         18           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1          16            2         1441         1445        1708         1721          {'HP'}           211       {'N165AW'}            87                 96            74         -13          -4       {'RNO'}    {'PHX'}      601         4          9           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1           1            1         2258         2300        2336         2335          {'HP'}          1245       {'N183AW'}            38                 35            20           1          -2       {'TUS'}    {'PHX'}      110         6         12           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1           4            4         1814         1814        1901         1910          {'US'}           683       {'N963VJ'}            47                 56            34          -9           0       {'DTW'}    {'PIT'}      201         6          7           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1          31            3         1822         1820        1934         1925          {'US'}           757       {'N912VJ'}            72                 65            52           9           2       {'PHL'}    {'PIT'}      267         6         14           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1          18            4          729          730         841          843          {'US'}          1564       {'N941VJ'}            72                 73            58          -2          -1       {'DCA'}    {'PVD'}      357         3         11           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    
    1996      1          26            5         1704         1705        1829         1839          {'NW'}          1538       {'N960N' }            85                 94            69         -10          -1       {'DTW'}    {'RIC'}      456         3         13           0           {0x0 char}          0         {0x0 char}      {0x0 char}     {0x0 char}     {0x0 char}         {0x0 char}    

Импорт десяти строк данных для переменных 7, 8, и 9 из документа с именем '2007'. Диапазон Excel 'G2:I11' представляет столбцы 7 через 9и десять строк, начинающихся со строки 2 после имен переменных.

M = readcell('airlinesmall_subset.xlsx','Sheet','2007','Range','G2:I11')
M=10×3 cell array
    {[ 935]}    {[ 935]}    {'WN'}
    {[1041]}    {[1040]}    {'WN'}
    {[1430]}    {[1500]}    {'WN'}
    {[ 940]}    {[ 950]}    {'WN'}
    {[1515]}    {[1515]}    {'WN'}
    {[2042]}    {[2035]}    {'WN'}
    {[2116]}    {[2130]}    {'WN'}
    {[1604]}    {[1605]}    {'WN'}
    {[1258]}    {[1230]}    {'WN'}
    {[1134]}    {[1145]}    {'WN'}

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

свернуть все

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

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

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

Форма

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

Укажите имя файла в filename.

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

Файл в папке

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

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

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

URL-адрес в Интернете

Если файл указан как URL-адрес унифицированного ресурса Интернета, то filename должен содержать тип протокола 'http://' или 'https://'.

Пример: 'http://hostname/path_to_file/my_data.csv'

Удаленное расположение

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

scheme_name://path_to_file/my_file.ext

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

Удаленное расположениеscheme_name
Амазонский S3™s3
Хранилище больших двоичных объектов Windows Azure ®wasb, wasbs
HDFS™hdfs

Дополнительные сведения см. в разделе Работа с удаленными данными.

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

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

  • В системах Windows ® с программным обеспечением Microsoft ® Excel ® функция импорта считывает любой формат файла электронной таблицы Excel, распознаваемый вашей версией Excel.

  • Если в системе нет Excel для Windows или используется MATLAB Online™, функция импорта работает с UseExcel свойство имеет значение false, и читает только .xls, .xlsx, .xlsm, .xltx, and .xltm файлы.

  • Для текстовых файлов с разделителями функция импорта преобразует пустые поля в файле в NaN (для числовой переменной) или пустой символьный вектор (для текстовой переменной). Все строки в текстовом файле должны иметь одинаковое количество разделителей. Функция импорта игнорирует незначительный пробел в файле.

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

Параметры импорта файлов, указанные как SpreadsheetImportOptions, DelimitedTextImportOptions, FixedWidthImportOptions, или XMLImportOptions объект, созданный detectImportOptions функция. opts содержит свойства, управляющие процессом импорта данных. Дополнительные сведения о свойствах каждого объекта см. на соответствующей странице объекта.

Тип файловПродукция
Файлы электронных таблицSpreadsheetImportOptions объект (доступен только для Sheet, DataRange, и VariableNames свойства)
Текстовые файлыDelimitedTextImportOptions объект
Текстовые файлы фиксированной шириныFixedWidthImportOptions объект
XML-файлыXMLImportOptions объект

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'NumHeaderLines',5 указывает, что первые пять строк, которые предшествуют табличным данным, являются строками заголовка.
Текстовые файлы и файлы электронных таблиц

свернуть все

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

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

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

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

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

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

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

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

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

Ожидаемое количество переменных, указанное как пара, разделенная запятыми, состоящая из '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

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

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

  • 'string' - Импорт текстовых данных в 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

Только текстовые файлы

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 'Encoding','UTF-8' использует UTF-8 в качестве кодировки.

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

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

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

СтоимостьТип для импортированных данных длительности
'duration'

MATLAB duration тип данных

Дополнительные сведения см. в разделе duration.

'text'

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

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

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

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

Языковой стандарт для чтения дат, указанный как пара, разделенная запятыми, состоящая из 'DateLocale' и вектор символов или строковый скаляр формы xx_YY, где:

  • YY является верхним кодом ISO 3166-1 альфа-2, указывающим страну.

  • xx - строчный двухбуквенный код ISO 639-1, указывающий язык.

Список общих значений для языкового стандарта см. в разделе Locale аргумент пары имя-значение для datetime функция.

При использовании %D спецификатор формата для чтения текста как datetime значения, использование DateLocale для указания языкового стандарта, в котором функция импорта должна интерпретировать имена и сокращения месяца и дня недели.

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

Пример: 'DateLocale','ja_JP'

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

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

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

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

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

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

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

свернуть все

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

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

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

Флажок для запуска экземпляра Microsoft Excel для Windows при чтении данных электронной таблицы, указанного как пара, разделенная запятыми, состоящая из 'UseExcel' и либо true, или false.

Можно установить 'UseExcel' для одного из следующих значений:

  • true - Функция импорта запускает экземпляр Microsoft Excel при чтении файла.

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

UseExcel

true

false

Поддерживаемые форматы файлов

.xls, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .ods

.xls, .xlsx, .xlsm, .xltx, .xltm

Поддержка интерактивных функций, таких как формулы и макросы

Да

Нет

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

Представлен в R2019a