主要内容

返回来自的多个输出参数MATLAB函数

这个例子展示了如何执行MATLAB®中返回多个输出参数的函数微软®Excel®使用一个Microsoft ExcelVBA宏。宏将多个输出参数从MATLAB工作空间写入到Microsoft Excel细胞。

要在Excel中使用电子表格链接™处理VBA代码,必须在Microsoft Visual Basic®编辑器。有关详情,请参阅安装

这个例子计算一个矩阵的奇异值分解圣言会

Microsoft Excel从A1到C3的单元格,创建一个数据范围。在单元格A1到A3中输入从1到3的数字。在单元格B1到B3中输入数字4到6。在单元格C1到C3中输入从7到9的数字。

工作表在单元格A1到C3中包含数字1到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

宏:

  1. MATLAB开始。

  2. 将A1通过C3单元格范围中的数据发送到MATLAB工作空间,并将其分配给MATLAB变量x

  3. 运行圣言会输入参数x输出参数u年代,v

  4. 单独地将一个输出参数的数据检索到特定的Microsoft Excel单元格,同时考虑每个输出数据矩阵的大小,以避免覆盖数据。对于第一个输出参数,宏检索输出参数的数据u进入A5细胞。

  5. 关闭MATLAB。

运行applysvd。MATLAB运行圣言会并用来自三个输出参数的数据填充指定的单元格。

工作表在单元格A1到C3中包含数字1到9。单元格A5到C7包含u输出参数的结果。单元格A9到C11包含来自s输出参数的结果。单元格A13到C15包含v输出参数的结果。

有关运行宏的详细信息,请参见Excel帮助。

另请参阅

|||||

相关的话题