В этом примере показано, как выполнить MATLAB® функция, которая возвращает несколько выходные аргументы в Microsoft® Excel® использование макроса Microsoft Excel VBA. Макрос записывает несколько выходных аргументов из рабочего пространства 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.
Создайте макрос Microsoft Excel VBA с именем applysvd
. Для получения дополнительной информации о создании макросов см. справку Excel.
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.
MLClose
| MLEvalString
| MLGetMatrix
| MLOpen
| MLPutMatrix
| svd