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. The 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'. Область значений '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 или если вы используете Online™ MATLAB, функция импорта работает с UseExcel значение свойства установлено в false, и читается только .xls, .xlsx, .xlsm, .xltx, and .xltm файлы.

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

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

Настройки импорта файлов, заданные как SpreadsheetImportOptions, DelimitedTextImportOptions, FixedWidthImportOptions, или XMLImportOptions объект, созданный detectImportOptions функция. The 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]

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

  • Вектор символов или строковый скаляр, содержащий букву столбца и номер строки с помощью A1 Excel обозначение. Для примера, 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',''

Примечание: Used 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