这个例子展示了如何执行一个MATLAB®返回多个输出参数的函数微软®Excel®使用一个Microsoft ExcelVBA宏。宏从MATLAB工作空间写入多个输出参数Microsoft Excel细胞。
要使用电子表格链接™Excel中的VBA代码,您必须启用电子表格链接作为参考微软Visual Basic®编辑器。有关详细信息,请参见安装.
这个例子计算矩阵的奇异值分解使用圣言会
.
在Microsoft Excel从A1到C3的单元格,创建一个数据范围。在单元格A1到A3中输入数字1到3。在单元格B1到B3中输入数字4到6。在单元格C1到C3中输入数字7到9。
创建一个Microsoft ExcelVBA宏的名字applysvd
.创建宏的详细操作请参见“Excel帮助”。
Public Sub applysvd() MLOpen MLPutMatrix "x", Range("A1:C3") MLEvalString ("[u,s,v] = svd(x);") MLGetMatrix "u", "A5" MLGetMatrix "s", "A9" MLGetMatrix "v", "A13" MatlabRequest MLClose End Sub
宏:
MATLAB开始。
通过C3单元格范围将A1中的数据发送到MATLAB工作区,并将其赋给MATLAB变量x
.
运行圣言会
输入参数x
和输出参数u
,年代
,v
.
分别将一个输出参数的数据检索到特定的Microsoft Excel单元格,同时考虑每个输出数据矩阵的大小,以避免覆盖数据。对于第一个输出参数,宏检索输出参数的数据u
进细胞A5。
关闭MATLAB。
运行applysvd
.MATLAB运行圣言会
并用来自三个输出参数的数据填充指定的单元格。
关于运行宏的详细信息,请参见Excel帮助。
MLClose
|MLEvalString
|MLGetMatrix
|MLOpen
|MLPutMatrix
|圣言会