Найти в Дзене
Piter Melnikov

Интеграция Matlab и Excel на уровне обмена данными

В некоторых случаях бывает необходимо работать в Excel одновременно используя мощные возможности Matlab. Matlab такую возможность предоставляет.
Matlab может функционировать совместно с Excel на уровне обмена данными. Это возможно благодаря расширению Excel Link. Это расширение позволяет использовать табличный процессор Microsoft Excel как процессор ввода-вывода MATLAB. Подключение Excel Link Чтобы обеспечить совместную работу Matlab и Excel, нужно установить в Excel файл excllink.xla.
Чтобы установить этот файл нужно в Excel выбрать Файл ⇒ Параметры ⇒ Перейти ⇒ Обзор, выбрать файл в каталоге \matlab\toolbox\exlink и установить его (рис. 1, 2, 3). После установки этого файла при каждом запуске Excel будет активироваться Matlab, открывая при этом свое командное окно. На ленте Excel Надстройки в группе Настраиваемые панели инструментов появятся кнопки getmatrix, putmatrix и evalstring (рис. 4), которые используются для установки режима обмена данными. Для закрытия
Оглавление

В некоторых случаях бывает необходимо работать в Excel одновременно используя мощные возможности Matlab. Matlab такую возможность предоставляет.
Matlab может функционировать совместно с Excel на уровне обмена данными. Это возможно благодаря расширению Excel Link. Это расширение позволяет использовать табличный процессор Microsoft Excel как процессор ввода-вывода MATLAB.

Чтобы обеспечить совместную работу Matlab и Excel, нужно установить в Excel файл excllink.xla.
Чтобы установить этот файл нужно в Excel выбрать
Файл ⇒ Параметры ⇒ Перейти ⇒ Обзор, выбрать файл в каталоге \matlab\toolbox\exlink и установить его (рис. 1, 2, 3).

Рис. 1.
Рис. 1.
Рис. 2.
Рис. 2.
Рис. 3.
Рис. 3.

После установки этого файла при каждом запуске Excel будет активироваться Matlab, открывая при этом свое командное окно. На ленте Excel Надстройки в группе Настраиваемые панели инструментов появятся кнопки getmatrix, putmatrix и evalstring (рис. 4), которые используются для установки режима обмена данными.

Рис. 4.
Рис. 4.

Для закрытия Matlab из Excel нужно в строке формул набрать =MLClose() в любой ячейке Excel.
Для открытия Matlab нужно выполнить одно из следующих действий:
- включить Matlab обычным способом, используя кнопку
Пуск;
- кликнуть на одной из кнопок
getmatrix, putmatrix, evalstring;
-
в Excel на ленте Разработчик в группе Код кликнуть на пиктографической кнопке Макрос, в открывшемся диалоговом окне Макрос в поле Имя макроса набрать matlabinit и кликнуть на кнопке Выполнить (рис. 5).

Рис. 5.
Рис. 5.

Обмен данными

Пример 1. Пусть требуется импортировать матрицу с именем M, созданную в Matlab, в ячейки рабочего листа Excel.
1. Создадим в Matlab матрицу M, введя в командном окне инструкцию (рис.6)
» M=[1 2 3; 0 3 2;2 1 0]

Рис. 6.
Рис. 6.

2. Импортируем матрицу М на рабочий лист Excel. Для этого:
- установим курсор в ячейку, с которой будет начинаться импортируемая матрица;
- кликнем на кнопке getmatrix - откроется диалоговое окно Microsoft Excel (рис. 7);
- в поле
Name of Matrix to get from MATLAB введем имя матрицы;
- кликнем на ОК - на рабочий лист импортируется матрица М.

Рис. 7
Рис. 7

Пример 2. Пусть требуется получить обратную матрицу созданной в примере 1 матрице М, используя функцию Matlab.
Выполним действия:
- кликнем на кнопке
evalstring;
- в открывшемся диалоговом окне в поле MATLAB command to evaluate введем инструкцию MI=inv(M), где MI -вновь создаваемая обратная матрица;

Рис. 8.
Рис. 8.

- импортируем обратную матрицу в Excel (рис. 9).

Рис. 9.
Рис. 9.

Пример 3. На рабочем листе (рис. 10) задана матрица и вектор В системы линейных уравнений. Требуется экспортировать матрицу и вектор в Matlab, задавая инструкции непосредственно в Excel, решить систему и результат импортировать на рабочий лист Excel.

Решение.

1. Выделим диапазон ячеек, содержащий матрицу А.
2. Для экспортирования матрицы на ленте
Надстройки кликнем на кнопке putmatrix (рис. 10).
3 . В открывшемся окне диалога в поле имени введем наименование матрицы "А".
4. Выделим диапазон ячеек, содержащий вектор В. Повторим операции 2 и 3.

Рис. 10.
Рис. 10.

Чтобы решить систему уравнений, кликнем на кнопке evalstring (лента Надстройки) и в открывшемся окне диалога введем инструкцию X=inv(A)*B ( рис. 11), кликнем на ОК.

Рис. 11.
Рис. 11.

Используя кнопку getmatrix, импортируем полученный результат на рабочий лист (рис. 12).

Рис. 12.
Рис. 12.

Работа, таким образом, интуитивно понятна. В отличие от MATLAB, Excel Link не чувствителен к регистру, так что ввод I и i или J и j равноценны.