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