Как в матлаб загрузить данные из файла excel
Читайте и запишите данные в файлах электронной таблицы, включая .xls и .xlsx файлы в таблицы, расписания, матрицы или массивы в MATLAB ® . Можно импортировать данные об электронной таблице в интерактивном режиме с помощью Import Tool, или можно импортировать данные программно с помощью функций, перечисленных здесь. Можно импортировать выбранную область значений данных, или можно импортировать несколько рабочих листов из файлов электронной таблицы.
Функции
Импортирование данных в интерактивном режиме
Чтение и запись таблиц или Timetables
Базовый импорт и экспорт
readtable | Составьте таблицу из файла |
writetable | Запись таблицы в файл |
readtimetable | Создание объекта Timetable из файла |
writetimetable | Запись timetable в файл |
sheetnames | Получите имена листа из файла электронной таблицы |
Определение правил импорта
detectImportOptions | Создайте настройки импорта на основе содержимого файла |
spreadsheetImportOptions | Объект параметров импорта для электронных таблиц |
getvaropts | Получите переменные настройки импорта |
setvaropts | Установите переменные настройки импорта |
setvartype | Установите типы данных переменных |
preview | Предварительный просмотр восьми строк из файла с помощью параметров импорта |
Чтение и запись матриц и массивов
readmatrix | Считайте матрицу из файла |
writematrix | Запишите матрицу в файл |
readcell | Считайте массив ячеек из файла |
writecell | Запишите массив ячеек в файл |
readvars | Считайте переменные из файла |
importdata | Загрузите данные из файла |
Объекты
Считайте данные об электронной таблице
Электронные таблицы часто содержат соединение числовых и текстовых данных, а также переменной и имен строки, который лучше всего представлен в MATLAB как таблица.
Предварительно просмотрите данные об электронной таблице из файла или буфера обмена и выберите данные, чтобы импортировать использование инструмента Import.
Лучший способ представлять табличные данные об электронной таблице в MATLAB находится в таблице, поскольку таблицы могут сохранить неоднородный (соединение числовых и текста) данные, а также имена строки и переменная.
В дополнение к импортированию данных как таблица с помощью readtable , можно также импортировать данные как матрицу, массив ячеек, или импортировать отдельные переменные непосредственно в к рабочей области.
Считайте и управляйте данными из набора файлов электронной таблицы.
Если вы хотите управлять процессом импорта вне возможностей , предоставленных readtable функция, такая как определение, как обработать недостающие данные или ошибки, затем создает объект настроек импорта прежде, чем импортировать данные.
Запишите данные об электронной таблице
Экспортируйте данные в рабочей области в файл электронной таблицы Microsoft Excel .
num = xlsread( filename ) reads the first worksheet in the Microsoft ® Excel ® spreadsheet workbook named filename and returns the numeric data in a matrix.
num = xlsread( filename , sheet ) reads the specified worksheet.
num = xlsread( filename , xlRange ) reads from the specified range of the first worksheet in the workbook. Use Excel range syntax, such as 'A1:C3' .
num = xlsread( filename , sheet , xlRange ) reads from the specified worksheet and range.
num = xlsread( filename , sheet , xlRange , 'basic' ) reads data from the spreadsheet in basic import mode. If your computer does not have Excel for Windows ® or if you are using MATLAB ® Online™ , xlsread automatically operates in basic import mode, which supports XLS, XLSX, XLSM, XLTX, and XLTM files.
If you do not specify all the arguments, use empty character vectors, '' , as placeholders, for example, num = xlsread(filename,'','','basic') .
[ num , txt , raw ] = xlsread( ___ ) additionally returns the text fields in cell array txt , and both numeric and text data in cell array raw , using any of the input arguments in the previous syntaxes.
___ = xlsread( filename ,-1) opens an Excel window to interactively select data. Select the worksheet, drag and drop the mouse over the range you want, and click OK. This syntax is supported only on Windows computers with Microsoft Excel software installed.
[ num , txt , raw , custom ] = xlsread( filename , sheet , xlRange ,'', processFcn ) , where processFcn is a function handle, reads from the spreadsheet, calls processFcn on the data, and returns the final results as numeric data in array num . The xlsread function returns the text fields in cell array txt , both the numeric and text data in cell array raw , and the second output from processFcn in array custom . The xlsread function does not change the data stored in the spreadsheet. This syntax is supported only on Windows computers with Excel software.
Examples
Read Worksheet Into Numeric Matrix
Create an Excel file named myExample.xlsx .
Sheet1 of myExample.xlsx contains:
Read numeric data from the first worksheet.
Read Range of Cells
Read a specific range of data from the Excel file in the previous example.
Read Column
Read the second column from the Excel file in the first example.
For better performance, include the row numbers in the range, such as 'B1:B3' .
Request Numeric, Text, and Raw Data
Request the numeric data, text data, and combined data from the Excel file in the first example.
Execute a Function on a Worksheet
In the Editor, create a function to process data from a worksheet. In this case, set values outside the range [0.2,0.8] to 0.2 or 0.8 .
In the Command Window, add random data to myExample.xlsx .
The worksheet named MyData contains values ranging from 0 to 1.
Read the data from the worksheet, and reset any values outside the range [0.2,0.8] . Specify the sheet name, but use '' as placeholders for the xlRange and 'basic' inputs.
Request Custom Output
Execute a function on a worksheet and display the custom index output.
In the Editor, modify the function setMinMax from the previous example to return the indices of the changed elements (custom output).
Read the data from the worksheet MyData , and request the custom index output, idx .
Input Arguments
filename — File name
character vector | string
File name, specified as a character vector or a string. If you do not include an extension, xlsread searches for a file with the specified name and a supported Excel extension. xlsread can read data saved in files that are currently open in Excel for Windows.
Example: 'myFile.xlsx' or "myFile.xlsx"
Data Types: char | string
sheet — Worksheet
character vector | string | positive integer
Worksheet, specified as one of the following:
Character vector or string that contains the worksheet name. The name cannot contain a colon ( : ). To determine the names of the sheets in a spreadsheet file, use xlsfinfo . For XLS files in basic mode, sheet is case sensitive.
Positive integer that indicates the worksheet index. This option is not supported for XLS files in basic mode.
Data Types: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
xlRange — Rectangular range
character vector | string
Rectangular range, specified as a character vector or a string.
Specify xlRange using two opposing corners that define the region to read. For example, 'D2:H4' represents the 3-by-5 rectangular region between the two corners D2 and H4 on the worksheet. The xlRange input is not case sensitive, and uses Excel A1 reference style (see Excel help).
Range selection is not supported when reading XLS files in basic mode. In this case, use '' in place of xlRange .
If you do not specify sheet , then xlRange must include both corners and a colon character, even for a single cell (such as 'D2:D2' ). Otherwise, xlsread interprets the input as a worksheet name (such as 'sales' or 'D2' ).
If you specify sheet , then xlRange :
Does not need to include a colon and opposite corner to describe a single cell.
Can refer to a named range that you defined in the Excel file (see the Excel help).
When the specified xlRange overlaps merged cells:
On Windows computers with Excel, xlsread expands the range to include all merged cells.
On computers without Excel for Windows, xlsread returns data for the specified range only, with empty or NaN values for merged cells.
Функция dlmread (чтение из текстовых файлов) предназначена для чтения матриц из текстовых файлов. Первый аргумент функции – имя файла. Результат записывается в матрицу.
Вторым аргументом можно явно указать разделитель чисел в файле, например ‘,’
Чтобы узнать размер прочитанной матрицы по каждому измерению используется функция size, которая возвращает массив двух значений: количество прочитанных строк и столбцов:
Чтобы узнать общее число прочитанных чисел можно перемножив размеры матрицы, используя функцию prod
или использовать функцию numel (количество всех элементов)
Третий и четвертый аргумент dlmread смещение строки и столбца, начиная с которых нужно начинать считывать данные из файла. Например, чтобы пропустить 1 строку и один столбец, необходимо вызвать функцию со следующими дополнительными параметрами
Чтение данных из Excel файлов
Для чтение данных из XLS файлов используется функция xlsread
Функция позволяет импортировать таблицы из файлов различных форматов. В отличие от результата работы функции xlsread результатом работы функции readtable является объект table, который содержит дополнительную информацию о таблице: об именах столбцов, строк. Без дополнительных указаний функция readtable считает, что в первой строке таблицы записаны имена её столбцов.
В рабочем каталоге MATLAB находится xls-файл следующего на листе “Лист1” которого находятся следующие данные:
Результатом работы функции readtable будет таблица (объект table)
Первая строка в первом столбце таблицы не содержит никаких значений (ячейка А1 пустая), поэтому первому столбцу было присвоено имя автоматически Var1. Второй и третий столбцы в таблице имеют имена COL1 и COL2 соответственно. Функция readtable рассматривает эти значения как имена столбцов. Если такое поведение функции readtable нежелательно, то можно передать функции значение ‘ReadVariableNames’ равное false
Видно, что в этом случае, поскольку столбцы исходной таблицы в таком представлении содержат неоднородные данные (и числа и строки), все значения в столбцах рассматриваются как строковые без попыток их преобразования в числовые значения. Для корректного чтения данных из таблицы ‘Книга1.xlsx’ необходимо использовать поведение функции readtable по умолчанию, т.е.
В этом случае можно получить содержимое столбца, используя его имя. Например data.COL1 представляет собой матрицу столбец
Столбец data.Var1 это матрица ячеек, содержащая строковые значения
Список имен столбцов содержится в атрибуте (свойстве) таблицы data.VariableNames, которое считывается следующим образом
Для того, чтобы значения в первом столбце рассматривались как имена строк, необходимо использовать опцию ReadRowNames
Для чтения извлечения данных из строки по её имени используется следующий синтаксис
Результатом является объект типа table. Можно извлечь несколько строк по их именам, например так
Чтобы извлечь данные в виде матрицы необходимо использовать свойство таблицы Variables
Для исходной таблицы это свойство вернет все числовые значения в виде матрицы
Электронные таблицы часто содержат соединение числовых и текстовых данных, а также переменной и имен строки, который лучше всего представлен в MATLAB ® как таблица. Можно импортировать данные в таблицу с помощью Import Tool или readtable функция.
Импортируйте данные об электронной таблице Используя Import Tool
Import Tool позволяет вам импортировать в таблицу или другой тип данных. Например, считайте данные из демонстрационного файла электронной таблицы patients.xls как таблица в MATLAB. Откройте файл с помощью Import Tool и выберите опции, такие как область значений данных и выходного типа. Затем нажмите кнопку Import Selection , чтобы импортировать данные в рабочее пространство MATLAB.
Импортируйте данные об электронной таблице Используя readtable
В качестве альтернативы можно считать данные об электронной таблице в таблицу с помощью readtable функция с именем файла, например:
Можно также выбрать область значений данных, чтобы импортировать путем определения параметра области значений. Например, считайте первые пять строк и столбцов электронной таблицы. Укажите диапазон в обозначении Excel как 'A1:E5' .
Импортируйте данные об электронной таблице как другие типы данных
В дополнение к таблицам можно импортировать данные об электронной таблице в рабочее пространство MATLAB как расписание, числовая матрица, массив ячеек, или разделить вектор-столбцы. На основе типа данных вы нуждаетесь, используете одну из этих функций.
Тип данных Выхода | Функция |
---|---|
Расписание | readtimetable |
Числовая матрица | readmatrix |
CellArray | readcell |
Отдельные вектор-столбцы | readvars |
Смотрите также
Похожие темы
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
Чтение данных электронной таблицы Используя Инструмент для импорта
В этом примере показано, как импортировать данные из электронной таблицы в рабочую область с помощью Import Tool и также импортировать данные от буфера обмена.
Интерактивный выбор данных
На вкладке Home, в разделе Variable, нажимают Import Data . В качестве альтернативы в Браузере текущей папки, дважды кликните имя файла с расширением .xls , .xlsx , .xlsb , или .xlsm . Import Tool открывается.
Выберите данные, которые вы хотите импортировать. Например, данные в следующем рисунке соответствуют данным для трех вектор-столбцов. Можно отредактировать имя переменной во вкладке, и можно выбрать разделы, состоящие из нескольких несмежных участков, данных для той же переменной.
На вкладке Import, в разделе Output Type, выбор, как вы хотите, чтобы данные были импортированы. Опция, которую вы выбираете, диктует тип данных импортированных данных.
Выбранная опция | Как данные импортированы |
---|---|
Вектор-столбцы | Импортируйте каждый столбец выбранных данных как отдельный m - 1 вектор. |
Числовая матрица | Импортируйте выбранные данные как m - n числовой массив. |
Массив строк | Импортируйте выбранные данные как m - n массив строк. |
CellArray | Импортируйте выбранные данные как массив ячеек, который может содержать несколько типов данных, таких как числовые данные и текст. |
Таблица | Импортируйте выбранные данные как таблицу. |
Если вы принимаете решение импортировать данные как матрицу или как числовые вектор-столбцы, инструмент подсвечивает любые нечисловые данные в рабочем листе. Каждый цвет подсветки соответствует предложенному правилу превратить совпадение данных в числовой массив. Например, можно заменить нечисловые значения на NaN . Кроме того, вы видите, как ваши данные будут импортированы, когда вы установите курсор на отдельные ячейки.
Можно добавить, удалить, переупорядочить или отредактировать правила, такие как изменение заменяющего значения от NaN к другому значению. Все правила применяются к импортированным данным только и не изменяют данные в файле. Задайте правила любое время, область значений включает нечисловые данные, и вы импортируете в матричные или числовые вектор-столбцы.
Когда вы нажимаете кнопку Import Selection , Import Tool создает переменные в вашей рабочей области.
Для получения дополнительной информации о взаимодействии с Import Tool посмотрите этот ролик.
Импортирование данных из нескольких электронных таблиц
Если вы планируете выполнить ту же операцию импорта на нескольких файлах, можно сгенерировать код от Import Tool, чтобы облегчить повторять операцию. На всех платформах Import Tool может сгенерировать скрипт программы, который можно отредактировать и запустить, чтобы импортировать файлы. На Microsoft ® Windows ® системы с Excel ® программное обеспечение, Import Tool может сгенерировать функцию, что можно призвать к каждому файлу.
Например, предположите, что у вас есть набор электронных таблиц в текущей папке под названием myfile01.xlsx через myfile25.xlsx , и вы хотите импортировать ту же область значений данных, A2:G100 , из первого рабочего листа в каждом файле. Сгенерируйте код для импорта всего набора файлов следующим образом:
Откройте один из файлов в Import Tool.
От кнопки Import Selection выберите Generate Function. Import Tool генерирует код, похожий на следующую выборку, и открывает код в Редакторе.
В отдельном программном файле или в командной строке, создайте for цикл, чтобы импортировать данные из каждой электронной таблицы в массив ячеек под названием myData :
Каждая ячейка в myData содержит массив данных из соответствующего рабочего листа. Например, myData содержит данные из первого файла, myfile01.xlsx .
Вставка данных от буфера обмена
В дополнение к импортированию данных в интерактивном режиме, можно также вставить данные об электронной таблице из буфера обмена в MATLAB ® .
Во-первых, выберите и скопируйте свои данные об электронной таблице в Microsoft Excel , затем используйте один из следующих методов:
В строке заголовка браузера Рабочей области щелкните , и затем выберите Paste.
Откройте существующую переменную в редакторе Переменных, щелкните правой кнопкой, и затем выберите Paste Excel Data.
Читайте также: