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 содержит данные в нескольких рабочих листах в течение многих лет между 1 996 и 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
Amazon S3™s3
Устройство хранения данных Windows Azure® Blobwasb, 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

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

Тип файловВывод
Файлы электронной таблицыSpreadsheetImportOptions объект (только доступный для SheetDataRange , и 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'Текст, или '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'

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

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

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

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

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

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

LeadingDelimitersRule Поведение
'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