Create Diagonal Matrix Using Worksheet Cells

This example shows how to execute Spreadsheet Link™ functions to export a named range in the worksheet to MATLAB® and create a diagonal matrix using Microsoft® Excel® worksheet cells.

The example assumes that MATLAB is running after Microsoft Excel opens. For details, see Start and Stop Spreadsheet Link and MATLAB.

In a worksheet, enter the numbers 1 through 5 into the range of cells from A1 through E1. Define the name testData for this range of cells and select it. For instructions, see Excel Help and enter the search term: define and use names in formulas.

The named range testData appears in the Name Box. Enter the Spreadsheet Link function MLPutRanges directly into the worksheet cell as a worksheet formula. Double-click cell A3. Enter this text.

=MLPutRanges()

Press Enter. Microsoft Excel exports the named range testData into the MATLAB variable testData in the MATLAB workspace. After a Spreadsheet Link function successfully executes as a worksheet formula, the cell contains the value 0. While the function executes, the cell shows the entered formula. Double-click cell A5. Next, create a diagonal matrix. Use the diag function to specify testData as the input argument and d as the output argument. The Spreadsheet Link function MLEvalString executes the MATLAB command. Enter this text.

=MLEvalString("d = diag(testData);")

Press Enter. MATLAB executes the diag function. The MATLAB variable d appears in the MATLAB workspace and contains the diagonal matrix.

Double-click cell A7. Now retrieve the diagonal matrix into the worksheet using the Spreadsheet Link function MLGetMatrix. Enter this text.

=MLGetMatrix("d","A9")

The diagonal matrix displays in cell A9 through E13.  