ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.05.2019

Просмотров: 684

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

21 

 

 

Вернемся в Excel, сделаем текущей ячейку A5 и нажмем кнопку Get 

data from MATLAB

. Появляется диалоговое окно со строкой ввода, в ко-

торой требуется ввести имя переменной, импортируемой в Excel. В данном 

случае такой переменной является IM. 

 

 

Нажмем OK, в ячейки с A5 по С7 введены элементы обратной мат-

рицы.  

Итак, для экспорта матрицы в Matlab следует выделить подходящие 

ячейки листа Excel, а для импорта достаточно указать одну ячейку, которая 

будет  являться  верхним  левым  элементом  импортируемого  массива. 

Остальные элементы запишутся в ячейки листа согласно размерам массива, 

переписывая содержащиеся в них данные, поэтому следует соблюдать осто-

рожность при импорте массивов.  

Вышеописанный подход является самым простым способом обмена 

информацией между приложениями – исходные данные содержатся в Excel, 

затем экспортируются в Matlab, обрабатываются там некоторым образом и 

результат импортируется в Excel. Пользователь переносит данные при по-

мощи кнопок панели инструментов Spreadsheet Link. Информация мо-

жет быть представлена в виде матрицы, то есть прямоугольной области ра-

бочего листа. Ячейки, расположенные в строку или столбец, экспортиру-

ются,  соответственно,  в  вектор-строки  и  вектор-столбцы  Matlab.  Анало-

гично происходит и импорт вектор-строк и вектор-столбцов в Excel.  

Эти же операции можно осуществить путем аналогичных дополни-

тельных функций рабочего листа. Функция MLPutMatrix служит для по-

мещения  данных  из  ячеек  рабочего  листа  Excel  в  массив  рабочей  среды 
Matl

ab. Аргументами данной функции являются имя переменной, заключен-

ное в кавычки, и диапазон ячеек Excel, относящихся к этой переменной. Об-

ратную  операцию  осуществляет  функция  MLGetMatrix,  при  этом  аргу-

ментами этой функции являются имя переменной рабочей среды MatLab с 


background image

22 

 

данными, заключенной в кавычки, и диапазон ячеек Excel, где будут разме-

щены данные этой переменной, также заключенный в кавычки. Обращение 

из  Excel  к  командам  Matlab  производится  при  помощи  функции 
MLEvalString

, при этом команды задаются в качестве единственного ар-

гумента этой функции и заключаются в кавычки. Возможно задание строки 

с несколькими командами, при этом команды разделяются точкой с запятой, 

однако в кавычки берется вся строка, а не каждая команда в отдельности. 

Рассмотрим решение предыдущего примера с использованием выше-

перечисленных  функций  рабочего  листа.  В  ячейку  E2  введем  функцию 
=MLPutMatrix("M"; A1:C3)

, нажатие клавиши Enter приведет к вы-

полнению  данной  команды.  Далее  в  ячейку  E4  занесем  функцию 
=MLEvalString("IM=inv(M)")

, после выхода из ячейки будет выпол-

нено обращение матрицы M и помещение результата в матрицу IM. Нако-

нец, поместим в ячейку E6 функцию =MLGetMatrix("IM";"A5:C7")

после выполнения данной функции в ячейках с A5 по С7 Excel будут разме-

щены элементы обратной матрицы IM. Результаты данных операций приве-

дены ниже: 

 

Как видно из скриншота, при выполнении указанных функций ра-

бочего листа MatLab в ячейках Excel E2, E4 и E6 при отсутствии ошибок 

отображаются нули, в противном случае в ячейке отображается информа-

ция об ошибке. 

При изменении содержимого исходного массива в Excel, а также 

при  последующих  загрузках  электронной  таблицы  автоматической  ре-

калькуляции функций Matlab рабочего листа не происходит, за исключе-

нием функции MLPutMatrix. Для активизации ячеек, содержащих дан-

ные функции, следует поочередно сделать их текущими, нажать клавишу 

F2 редактирования и затем клавишу Enter.