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 объекта области значений, возвращенного функцией Cells VBA, чтобы задать, где записать данные:

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

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