ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.05.2019
Просмотров: 684
Скачиваний: 6
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 с
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.