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 инициализирует внутренние переменные Spreadsheet Link™ и включает MLGetMatrix для функционирования в стандартной подпрограмме. Не включать MatlabRequest в макрофункции, если функция не вызывается из стандартной подпрограммы.

  • Чтобы работать с кодом VBA в Excel с Spreadsheet Link, необходимо включить Spreadsheet Link как ссылку в Microsoft® Визуальный базовый® Редактор. Для получения дополнительной информации см. раздел Установка.

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