【问题标题】:octave : how could 2 matrices be multiplied in this way ?octave:2个矩阵怎么可以这样相乘?
【发布时间】:2014-10-03 10:44:38
【问题描述】:

我想知道以下 2 个矩阵是否可以在 Octave 中以这种方式相乘而不使用任何“for”循环(即矢量化):

D 是具有 m 列的 3 x m 矩阵,例如[d1c,d2c,d3c,d4c](其中 m=4,d*c 表示 3 x 1 列向量)。

A 是一个 m x 2 矩阵,有 m 行,例如[a1r;a2r;a3r;a4r](其中 a*r 表示 1 x 2 行向量)。

我要计算输出:

result = d1c * a1r + d2c * a2r + d3c * a3r + d4c * a4r;

其中每个d*c * a*r 都是一个 3 x 2 矩阵。

我想知道我是否可以将 D 视为具有矩阵/向量元素 d*c 的行向量,将 A 视为具有矩阵/向量元素 a*r 的列向量,然后将计算作为特殊矩阵乘法执行:

result = D ?*? A; where "?*?" means a special multiplication as specified above

这样当 m 很大时,这种矢量化乘法可以更快地完成这项工作。

Octave 中是否有任何内置函数/方法可以让我以这种方式完成任务?

任何想法。感谢您的任何建议。

【问题讨论】:

    标签: octave


    【解决方案1】:

    经过一些研究,我发现,事实上,正常的矩阵乘法可以为我完成任务。那就是:

    result = D * A;   # just use the normal matrix multiplication in Octave
    

    不需要特殊的矩阵乘法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多