此示例显示如何执行MATLAB®返回多个输出参数的函数微软®excel.®用一个微软Excel.VBA宏。宏将MATLAB工作区写入多个输出参数微软Excel.细胞。
使用电子表格链接™与VBA代码一起使用,您必须使电子表格链接作为参考Microsoft Visual Basic®编辑。有关详细信息,请参阅安装。
此示例使用矩阵的奇异值分解使用SVD.
。
在里面微软Excel.来自A1到C3的细胞,创建一系列数据。在单元格A1到A3中输入从1到3的数字。在单元格B1到B3中输入从4到6的数字。在单元格C1至C3中输入从7到9的数字。
创建一个微软Excel.VBA宏命名applysvd.
。有关创建宏的详细信息,请参阅Excel帮助。
公共子applysvd()mlopen mlputmatrix“x”,范围(“a1:c3”)mlevalstring(“[u,s,v] = svd(x);”)mlgetmatrix“u”,“a5”mlgetmatrix“s”,“A9”MLGETMATRIX“V”,“A13”MATLABREQUEST MLCLOSE结束子
宏:
开始matlab。
将A1到C3单元格范围中的数据发送到MATLAB工作区,并将其分配给MATLAB变量X
。
跑SVD.
使用输入参数X
和输出参数你
那S.
, 和V.
。
单独检索一个输出参数的数据,以特定的微软Excel.单元格同时考虑每个输出数据矩阵的大小,以避免覆盖数据。对于第一个输出参数,宏检索输出参数的数据你
进入细胞A5。
关闭matlab。
跑步applysvd.
。Matlab跑步SVD.
并使用来自三个输出参数的数据填充指定的单元格。
有关运行宏的详细信息,请参阅Excel帮助。
mlclose.
|Mlevalstring.
|mlgetmatrix.
|MLOPEN.
|mlputmatrix.
|SVD.