В этом примере показано, как выполнить функции Spreadsheet Link™ для экспорта именованной области значений в лист в MATLAB® и создайте диагональную матрицу с помощью Microsoft® Excel® Макрос VBA.
Пример предполагает, что MATLAB запускается после открытия Microsoft Excel. Для получения дополнительной информации см. Start and Stop Spreadsheet Link и MATLAB.
Чтобы работать с кодом VBA в Excel с Spreadsheet Link, необходимо включить Spreadsheet Link как ссылку в Microsoft Visual Basic® Редактор. Для получения дополнительной информации см. раздел Установка.
В листе введите числа с 1 по 5 в область значений камер из A1 через E1. Определите имя testData для этой области значений камер и выберите его. Для получения инструкций смотрите справку Excel и введите поисковый термин: задайте и используйте имена в формулах.
Именованная область значений testData появляется в Name Box.

На вкладке Developer в Microsoft Excel нажмите Visual Basic. Откроется окно Редактор Visual Basic.
Вставьте новый модуль и создайте диагональную матрицу из данных в testData. Чтобы вставить модуль, выберите Insert > Module. В секции кода введите этот код VBA, содержащий макрос с именем Diagonal.
Sub Diagonal()
MLPutRanges
MLEvalString "b = diag(testData);"
MLGetMatrix "b", "A3"
MatlabRequest
End SubThe Diagonal макрос экспортирует именованную область значений в переменный MATLAB testData использование MLPutRanges функция. Затем макрос использует MLEvalString функция для выполнения кода MATLAB. Код MATLAB создает диагональную матрицу из данных в testData использование diag функция. Код присваивает диагональную матрицу переменного MATLAB b. Затем макрос использует MLGetMatrix функция для импорта диагональной матрицы в лист.
Скопируйте и вставьте код в редактор Visual Basic из HTML документации.
Для получения дополнительной информации о работе с модулями см. справку Excel.
Запустите макрос, нажав Run Sub/UserForm (F5). Для получения дополнительной информации о запуске макросов см. справку Excel.
Диагональная матрица отображается в камерах листа A3 через E7.

diag | MLEvalString | MLPutRanges