Возврат нескольких Выходных аргументов из функции MATLAB

В этом примере показано, как выполнить функцию MATLAB®, которая возвращает несколько выходных аргументов в Microsoft® Excel® с помощью макроса VBA Microsoft Excel. Макрос пишет несколько выходных аргументов от рабочего пространства MATLAB до ячеек Microsoft Excel.

Этот пример вычисляет сингулярное разложение матрицы с помощью 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

Макрос:

  1. Запускает MATLAB.

  2. Отправляет данные в A1 через диапазон ячеек C3 к рабочему пространству MATLAB и присваивает его переменной MATLAB x.

  3. Запуски svd с входным параметром x и выходные аргументы uS, и v.

  4. Индивидуально получает данные для одного выходного аргумента в определенную ячейку Microsoft Excel при составлении размера каждой матрицы выходных данных, чтобы не перезаписывать данные. Для первого выходного аргумента макрос получает данные для выходного аргумента u в ячейку A5.

  5. Закрывает MATLAB.

Запустите applysvd. MATLAB запускает svd и заполняет заданные ячейки с данными из этих трех выходных аргументов.

Для получения дополнительной информации о рабочих макросах, смотрите Excel Help.

Смотрите также

| | | | |

Похожие темы