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
    {[                   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
    {[                   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
    {[ 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'

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

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

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

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

Тип файловВывод
Файлы электронной таблицыSpreadsheetImportOptions объект
Текстовые файлыDelimitedTextImportOptions объект
Текстовые файлы фиксированной шириныFixedWidthImportOptions объект

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

Задайте дополнительные разделенные запятой пары 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' или имя схемы кодирования стандартного символа, такое как одно из значений в этой таблице.

'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

Тип выходных данных данных о длительности из текстовых файлов, заданных как разделенная запятой пара, состоящая из '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'Возвратите ошибку и прервите операцию импорта.

Файлы электронной таблицы только

свернуть все

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