В этом примере показано, как выполнять функции Link™ электронной таблицы для экспорта именованного диапазона на листе в MATLAB ® и создания диагональной матрицы с помощью макроса Microsoft ® Excel ® VBA.
В примере предполагается, что MATLAB выполняется после открытия Microsoft Excel. Дополнительные сведения см. в разделах Начало и прекращение ссылки на электронную таблицу и MATLAB.
Для работы с кодом VBA в Excel со ссылкой на электронную таблицу необходимо включить ссылку на электронную таблицу в качестве ссылки в редакторе Microsoft Visual Basic ®. Дополнительные сведения см. в разделе Установка.
На листе введите числа от 1 до 5 в диапазон ячеек из A1 через E1. Определение имени testData для этого диапазона ячеек и выберите его. Инструкции см. в справке Excel и введите поисковый термин: определение и использование имен в формулах.
Именованный диапазон testData появляется в поле «Имя».

На вкладке Разработчик в Microsoft Excel щелкните Visual Basic. Откроется окно Редактор Visual Basic.
Вставка нового модуля и создание диагональной матрицы из данных в testData. Для вставки модуля выберите «Вставка» > «Модуль». В разделе «Код» введите код VBA, содержащий макрос с именем Diagonal.
Sub Diagonal()
MLPutRanges
MLEvalString "b = diag(testData);"
MLGetMatrix "b", "A3"
MatlabRequest
End Sub 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