В этом примере показано, как выполнить функцию MATLAB®, которая возвращает несколько выходных аргументов в Microsoft® Excel® с помощью макроса VBA Microsoft Excel. Макрос пишет несколько выходных аргументов от рабочего пространства MATLAB до ячеек Microsoft Excel.
Чтобы работать с кодом VBA в Excel с Spreadsheet Link™, необходимо включить Spreadsheet Link как ссылку в Редакторе Microsoft Visual Basic®. Для получения дополнительной информации смотрите Установку.
Этот пример вычисляет сингулярное разложение матричного использования svd
.
В ячейках Microsoft Excel от A1 до C3 создайте область значений данных. Введите номера от 1 до 3 в ячейках A1 через A3. Введите номера от 4 до 6 в ячейках B1 через B3. Введите номера от 7 до 9 в ячейках C1 через C3.
Создайте макрос VBA Microsoft Excel под названием applysvd
. Для получения дополнительной информации о создании макросов, смотрите Excel Help.
Public Sub applysvd() MLOpen MLPutMatrix "x", Range("A1:C3") MLEvalString ("[u,s,v] = svd(x);") MLGetMatrix "u", "A5" MLGetMatrix "s", "A9" MLGetMatrix "v", "A13" MatlabRequest MLClose End Sub
Макрос:
Запускает MATLAB.
Отправляет данные в A1 через диапазон ячеек C3 к рабочему пространству MATLAB и присваивает его переменной MATLAB x
.
Запуски svd
с входным параметром x
и выходные аргументы u
S
, и v
.
Индивидуально получает данные для одного выходного аргумента в определенную ячейку Microsoft Excel при составлении размера каждой матрицы выходных данных, чтобы не перезаписывать данные. Для первого выходного аргумента макрос получает данные для выходного аргумента u
в ячейку A5.
Закрывает MATLAB.
Запустите applysvd
. Запуски MATLAB svd
и заполняет заданные ячейки с данными из этих трех выходных аргументов.
Для получения дополнительной информации о рабочих макросах, смотрите Excel Help.
MLClose
| MLEvalString
| MLGetMatrix
| MLOpen
| MLPutMatrix
| svd