Самоучитель Matlab
В ячейку C3 вводится и выполняется формула =MLEvalString("B= inv(A)"). Функция MLEvalString() позволяет выполнять команды среды Matlab. Команды (в двойных кавычках) указываются аргументом функции MLEvalString(). Если команд несколько, они разделяются точкой с запятой. В данном случае команда одна: B=inv(A). Именно такую команду нам надо было бы выполнить в командном окне Matlab, если бы мы работали непосредственно с приложением Matlab. Результат команды такой: в переменную B записывается результат выражения inv(A), то есть обратная матрица к той, что записана в переменную A. После того, как обратная матрица вычислена, содержимое переменной B из рабочего пространства Matlab необходимо импортировать в рабочий документ Excel. Для этого в ячейку C4 и вводится формула =MLGetMatrix("B";"E12"). Функцией MLGetMatrix() элементы матрицы (первый аргумент функции) рабочего пространства Matlab копируются в ячейки диапазона, указанного вторым аргументом функции. Оба аргумента заключаются в двойные кавычки. Если вторым аргументом указана одна ячейка, то она определяет верхнюю левую ячейку заполняемого в Excel диапазона. В данном случае диапазон ячеек E12:G14 будет заполнен элементами матрицы, обратной к исходной (диапазон ячеек E2:G4).
На заметку
В ячейки диапазона E12:G14 копируются числовые значения, а не формулы. Это обстоятельство достаточно важно для понимания принципов использования надстройки Spreadsheet Link EX.
Теперь проверим, что произошло в рабочем пространстве Matlab. Для этого в командном окне проверяем значения переменных A и B, как показано на рис. В.8.
Видим, что и переменная A, и переменная B содержат корректные значения. Причем стоит обратить внимание, что непосредственно в рабочем документе Matlab мы эти переменные не объявляли.
На заметку
Вышемыиспользовалитривстроенныефункциинадстройки:MLPutMatrix(), MLEvalString() и MLGetMatrix(). При успешном выполнении функции возвращают в качестве значения 0. Это характерная ситуация для функций надстройки Spreadsheet Link EX. Здесь проявляется принципиальное отличие функций надстройки от встроенных функций Excel. Встроенные функции Excel возвращают результат, а функции надстройки выполняют действия.
Несмотря на кажущуюся эффективность описанного выше подхода, есть одна маленькая проблема, которая может стать достаточно большой. Связана она с автоматическим пересчетом содержимого документа Excel (с формулами на основе функций надстройки Spreadsheet Link EX) при изменении данных в ячейках документа. Проиллюстрируем это на примере с ранее