exponenta event banner

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

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

Для работы с кодом VBA в Excel с Link™ электронной таблицы необходимо включить ссылку на электронную таблицу в качестве ссылки в редакторе Microsoft Visual Basic ®. Дополнительные сведения см. в разделе Установка.

В этом примере вычисляется разложение сингулярного значения матрицы с помощью svd.

В ячейках Microsoft Excel от A1 до C3 создайте диапазон данных. Введите числа от 1 до 3 в ячейках от A1 до A3. Введите числа от 4 до 6 в ячейках от B1 до B3. Введите числа от 7 до 9 в ячейках от C1 до C3.

Worksheet contains the numbers 1 through 9 in cells A1 through C3

Создание макроса VBA Microsoft Excel с именем 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

Макрос:

  1. Запуск команды MATLAB.

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

  3. Пробеги svd с входным аргументом x и выходные аргументы u, s, и v.

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

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

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

Worksheet contains the numbers 1 through 9 in cells A1 through C3. Cells A5 through C7 contain the results from the u output argument. Cells A9 through C11 contain the results from the s output argument. Cells A13 through C15 contain the results from the v output argument.

Дополнительные сведения о выполнении макросов см. в справке Excel.

См. также

| | | | |

Связанные темы