Matlab сохранение в excel

Обновлено: 05.07.2024

Функция 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

Для исходной таблицы это свойство вернет все числовые значения в виде матрицы

xlswrite( filename , A , sheet ) writes to the specified worksheet.

xlswrite( filename , A , xlRange ) writes to the rectangular region specified by xlRange in the first worksheet of the workbook. Use Excel range syntax, such as 'A1:C3' .

xlswrite( filename , A , sheet , xlRange ) writes to the specified worksheet and range.

status = xlswrite( ___ ) returns the status of the write operation, using any of the input arguments in previous syntaxes. When the operation is successful, status is 1 . Otherwise, status is 0 .

[ status , message ] = xlswrite( ___ ) additionally returns any warning or error message generated by the write operation in structure message .

Examples

Write Vector to Spreadsheet

Write to Specific Sheet and Range in Spreadsheet

Input Arguments

File name, specified as a character vector or a string.

If filename does not exist, xlswrite creates a file, determining the format based on the specified extension. To create a file compatible with Excel 97-2003 software, specify an extension of .xls . To create files in Excel 2007 formats, specify an extension of .xlsx , .xlsb , or .xlsm . If you do not specify an extension, xlswrite uses the default, .xls .

Example: 'myFile.xlsx' or "myFile.xlsx"

Example: 'C:\myFolder\myFile.xlsx'

Example: 'myFile.csv'

Data Types: char | string

Input matrix, specified as a two-dimensional numeric, character array, or string array, or, if each cell contains a single element, a cell array.

If A is a cell array containing something other than a scalar numeric or text, then xlswrite silently leaves the corresponding cell in the spreadsheet empty.

The maximum size of array A depends on the associated Excel version. For more information on Excel specifications and limits, see the Excel help.

Example: [10,2,45;-32,478,50]

Example:

Example: "ABCDEF"

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell

Worksheet name, 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 .

Positive integer that indicates the worksheet index.

If sheet does not exist, xlswrite adds a new sheet at the end of the worksheet collection. If sheet is an index larger than the number of worksheets, xlswrite appends empty sheets until the number of worksheets in the workbook equals sheet . In either case, xlswrite generates a warning indicating that it has added a new worksheet.

Data Types: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Rectangular range, specified as a character vector or a string.

Specify xlRange using two opposing corners that define the region to write. 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). xlswrite does not recognize named ranges.

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, xlswrite interprets the input as a worksheet name (such as 'D2' ).

If you specify sheet , then xlRange can specify only the first cell (such as 'D2' ). xlswrite writes input array A beginning at this cell.

Чтобы экспортировать таблицу в рабочей области в файл электронной таблицы Microsoft® Excel®, используйте writetable функция. Можно экспортировать данные из рабочей области в любой лист в файле и в любое место на этом листе. По умолчанию, writetable пишут ваши табличные данные в первый рабочий лист в файле, запускающемся в ячейке A1 .

Например, составьте демонстрационную таблицу данных в столбцах и отобразите первые пять строк.

Запишите таблицу T к первому листу в новом файле электронной таблицы под названием patientdata.xlsx , запуск в ячейке D1 . Чтобы задать фрагмент рабочего листа, вы хотите записать в, использовать Range аргумент пары "имя-значение". По умолчанию, writetable написал имена табличной переменной как заголовки столбцов в файле электронной таблицы.

Запишите таблицу T без имен переменных к новому листу под названием 'MyNewSheet' . Чтобы записать данные без имен переменных, задайте пару "имя-значение" WriteVariableNames как false .

Запись числовой и текстовые данные к файлу электронной таблицы

Например, создайте демонстрационный массив числовых данных, A , и демонстрационный массив ячеек текста и числовых данных, C .

Запишите массиву A в прямоугольную область 5 на 5, E1:I5 , на первом листе в новом файле электронной таблицы под названием testdata.xlsx .

Запишите массиву ячеек C в прямоугольную область, которая запускается в ячейке B2 на рабочем листе под названием Temperatures Диапазон можно задать, используя только первую ячейку.

writecell выводит предупреждение потому что рабочий лист, Temperatures , ранее не существовал, но можно отключить это предупреждение.

Отключение предупреждения при добавлении нового рабочего листа

Если целевой рабочий лист не существует в файле, то writetable и writecell функции выводят это предупреждение:

Ячейки формата в Excel Files

Для получения дополнительной информации смотрите Начало работы с COM.

Смотрите также

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

© 1994-2021 The MathWorks, Inc.

Для просмотра документации необходимо авторизоваться на сайте
Войти

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

xlswrite( filename , A , sheet ) записи к заданному рабочему листу.

xlswrite( filename , A , xlRange ) записи в прямоугольную область заданы xlRange в первом рабочем листе рабочей книги. Используйте синтаксис области значений Excel, такой как 'A1:C3' .

xlswrite( filename , A , sheet , xlRange ) записи к заданному рабочему листу и области значений.

status = xlswrite( ___ ) возвращает состояние операции записи, с помощью любого из входных параметров в предыдущих синтаксисах. Когда операция успешна, состоянием является 1 . В противном случае состоянием является 0 .

Примеры

Запись вектора в электронную таблицу

Запишите вектор с 7 элементами в файл Excel®.

Запись в определенный лист и область значений в электронной таблице

Запишите смешанные текстовые и числовые данные в файл Excel®, запускающийся в ячейке E1 из Sheet2 .

filename FileName
вектор символов | строка

Имя файла в виде вектора символов или строки.

Если filename не существует, xlswrite создает файл, определяя формат на основе заданного расширения. Чтобы создать файл, совместимый с программным обеспечением Excel 97-2003, задайте расширение .xls . Чтобы создать файлы в форматах Excel 2007, задайте расширение .xlsx , .xlsb , или .xlsm . Если вы не задаете расширение, xlswrite использует значение по умолчанию, .xls .

Пример: 'myFile.xlsx' или "myFile.xlsx"

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

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

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

A — Введите матрицу
матрица

Введите матрицу в виде двумерного числового, символьного массива или массива строк, или, если каждая ячейка содержит один элемент, массив ячеек.

Если A массив ячеек, содержащий что-то другое, чем числовой скаляр или текст, затем xlswrite тихо оставляет соответствующую ячейку в электронной таблице пустой.

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

Пример: [10,2,45;-32,478,50]

Пример:

Пример: "ABCDEF"

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell

sheet — Имя рабочего листа
вектор символов | представляет в виде строки | положительное целое число

Имя рабочего листа в виде одного из следующего:

Вектор символов или строка, которая содержит имя рабочего листа. Имя не может содержать двоеточие ( : ). Чтобы определить имена листов в файле электронной таблицы, используйте xlsfinfo .

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

Если sheet не существует, xlswrite добавляет новый лист в конце набора рабочего листа. Если sheet индекс, больше, чем количество рабочих листов, xlswrite добавляет пустые листы, пока количество рабочих листов в рабочей книге не равняется sheet . В любом случае, xlswrite генерирует предупреждение, указывающее, что оно добавило новый рабочий лист.

Типы данных: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

xlRange — Прямоугольная область значений
вектор символов | строка

Прямоугольная область значений в виде вектора символов или строки.

Задайте xlRange использование двух противостоящих углов, которые задают область, чтобы записать. Например, 'D2:H4' представляет прямоугольную область 3 на 5 между этими двумя углами D2 и H4 на рабочем листе. xlRange вход не является чувствительным к регистру, и использует стиль ссылки Excel A1 (см. справку Excel). xlswrite не распознает названные области значений.

Если вы не задаете sheet , затем xlRange должен включать оба угла и символ двоеточия, даже для отдельной ячейки (такие как 'D2:D2' ). В противном случае, xlswrite интерпретирует вход как имя рабочего листа (такое как 'D2' ).

Если вы задаете sheet , затем xlRange может задать только первую ячейку (такую как 'D2' xlswrite входной массив записей A начало в этой ячейке.

Читайте также: