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

В этом примере показано, как выполнить 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.

Worksheet contains the numbers 1 through 9 in cells A1 through 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

Макрос:

  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.

См. также

| | | | |

Похожие темы