exponenta event banner

MLGetMatrix

Запись содержимого матрицы MATLAB в лист Microsoft Excel

Синтаксис

= MLGetMatrix(var_name,edat)
MLGetMatrix var_name, edat
out = MLGetMatrix(var_name,edat)

Описание

= MLGetMatrix(var_name,edat) записывает содержимое матрицы MATLAB ®var_name на листе Excel ®, начиная с верхней левой ячейки, указанной edat. Этот синтаксис используется при работе непосредственно в документе.

MLGetMatrix var_name, edat записывает содержимое матрицы MATLAB var_name на листе Excel, начиная с верхней левой ячейки, указанной edat. Используйте этот синтаксис в макросе VBA.

out = MLGetMatrix(var_name,edat) позволяет выявлять ошибки при выполнении MLGetMatrix в макросе VBA. Если MLGetMatrix не удается, то out - строка, содержащая код ошибки. В противном случае out является 0.

Входные аргументы

var_name

Имя матрицы MATLAB для доступа.

var_name в кавычках непосредственно указывает имя матрицы. var_name без кавычек указывает адрес ячейки листа (или имя диапазона), содержащий имя матрицы. Не использовать переменную MATLAB ans как var_name.

edat

Расположение листа, в котором функция записывает содержимое var_name.

edat в кавычках непосредственно указывает местоположение. edat без кавычек указывает адрес ячейки листа (или имя диапазона), содержащий ссылку на расположение. В обоих случаях edat должен быть адресом ячейки или именем диапазона.

Выходные аргументы

out

0 если команда выполнена успешно. В противном случае строка, содержащая код ошибки.

Примеры

свернуть все

Запись содержимого матрицы MATLAB bonds запуск в ячейке C10 из Sheet2. Если bonds является матрицей 4 на 3, заполнять ячейки C10..E13 с данными:

MLGetMatrix("bonds", "Sheet2!C10")

Доступ к матрице MATLAB с именем строки в ячейке листа B12. Запись содержимого матрицы на лист, начиная с места, указанного строкой в ячейке листа B13:

MLGetMatrix(B12, B13)

Запись содержимого матрицы MATLAB A на лист, начиная с ячейки с именем RangeA:

Sub Get_RangeA()
MLGetMatrix "A", "RangeA"
MatlabRequest
End Sub

В макросе используйте Address свойство объекта диапазона, возвращаемое VBA Cells для указания места записи данных:

Sub Get_Variable()
MLGetMatrix "X", Cells(3, 2).Address
MatlabRequest
End Sub

Используйте эту функцию для получения переменной A из MATLAB и для проверки успешного выполнения команды:

Sub myfun()
    Dim out As Variant
    
    out = MLGetMatrix("A", "A1")
    
    If out <> 0 Then
        MsgBox out
    End If
    MatlabRequest
End Sub

Если MLGetMatrix сбой, myfun отображает окно сообщения с кодом ошибки.

Совет

  • Если данные существуют в указанных ячейках листа, они перезаписываются.

  • Если размеры матрицы MATLAB больше размеров указанных ячеек, данные перетекают в дополнительные строки и столбцы.

  • edat не должна включать ячейку, содержащую MLGetMatrix функция. Другими словами, будьте осторожны, чтобы не перезаписывать саму функцию. Также убедитесь, что в листе достаточно места для записи содержимого матрицы. Если места недостаточно, функция генерирует неустранимую ошибку.

  • MLGetMatrix функция не корректирует адреса ячеек автоматически. Если edat явный адрес ячейки, отредактируйте его, чтобы исправить адрес при выполнении одного из следующих действий:

    • Вставка или удаление строк или столбцов.

    • Переместите или скопируйте функцию в другую ячейку.

  • При автоматическом режиме расчета листа MLGetMatrix выполняется при вводе формулы в ячейку. Если рабочий лист работает в ручном режиме, введите MLGetMatrix функцию в ячейке, а затем нажмите F9 для ее выполнения. Однако нажатие F9 в этой ситуации может также снова выполнять другие функции рабочего листа и генерировать непредсказуемые результаты.

  • Если вы используете MLGetMatrix в подпрограмме макроса введите MatlabRequest на линии после MLGetMatrix. MatlabRequest инициализирует внутренние переменные Link™ электронной таблицы и включает MLGetMatrix для функционирования в подпрограмме. Не включать MatlabRequest в функции макроса, если функция не вызвана из подпрограммы.

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

Представлен до R2006a