Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

MLGetMatrix

Write contents of MATLAB matrix to Microsoft Excel worksheet

Syntax

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

Description

= MLGetMatrix(var_name,edat) writes the contents of MATLAB® matrix var_name in the Excel® worksheet, beginning in the upper-left cell specified by edat. Use this syntax when working directly in a worksheet.

MLGetMatrix var_name, edat writes the contents of MATLAB matrix var_name in the Excel worksheet, beginning in the upper-left cell specified by edat. Use this syntax in a VBA macro.

out = MLGetMatrix(var_name,edat) lets you catch errors when executing MLGetMatrix in a VBA macro. If MLGetMatrix fails, then out is a string containing error code. Otherwise, out is 0.

Input Arguments

var_name

Name of MATLAB matrix to access.

var_name in quotes directly specifies the matrix name. var_name without quotes specifies a worksheet cell address (or range name) that contains the matrix name. Do not use the MATLAB variable ans as var_name.

edat

Worksheet location where the function writes the contents of var_name.

edat in quotes directly specifies the location. edat without quotes specifies a worksheet cell address (or range name) that contains a reference to the location. In both cases, edat must be a cell address or a range name.

Output Arguments

out

0 if the command succeeded. Otherwise, a string containing error code.

Examples

collapse all

Write the contents of the MATLAB matrix bonds starting in cell C10 of Sheet2. If bonds is a 4-by-3 matrix, fill cells C10..E13 with data:

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

Access the MATLAB matrix named by the string in worksheet cell B12. Write the contents of the matrix to the worksheet starting at the location named by the string in worksheet cell B13:

MLGetMatrix(B12, B13)

Write the contents of MATLAB matrix A to the worksheet, starting at the cell named by RangeA:

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

In a macro, use the Address property of the range object returned by the VBA Cells function to specify where to write the data:

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

Use this function to get the variable A from MATLAB and to test if the command succeeded:

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

If MLGetMatrix fails, myfun displays a message box with the error code.

Tips

  • If data exists in the specified worksheet cells, it is overwritten.

  • If the dimensions of the MATLAB matrix are larger than that of the specified cells, the data overflows into additional rows and columns.

  • edat must not include the cell that contains the MLGetMatrix function. In other words, be careful not to overwrite the function itself. Also make sure there is enough room in the worksheet to write the matrix contents. If there is insufficient room, the function generates a fatal error.

  • MLGetMatrix function does not automatically adjust cell addresses. If edat is an explicit cell address, edit it to correct the address when you do either of the following:

    • Insert or delete rows or columns.

    • Move or copy the function to another cell.

  • If worksheet calculation mode is automatic, MLGetMatrix executes when you enter the formula in a cell. If worksheet calculation mode is manual, enter the MLGetMatrix function in a cell, and then press F9 to execute it. However, pressing F9 in this situation may also execute other worksheet functions again and generate unpredictable results.

  • If you use MLGetMatrix in a macro subroutine, enter MatlabRequest on the line after the MLGetMatrix. MatlabRequest initializes internal Spreadsheet Link™ variables and enables MLGetMatrix to function in a subroutine. Do not include MatlabRequest in a macro function unless the function is called from a subroutine.

Introduced before R2006a

Was this topic helpful?