Matlab中两个矩形矩阵的外部积

时间:2019-02-19 11:31:20

标签: matlab vectorization

如果我有一个向量r,我可以很容易地计算出它的内积

 r=[1 2 3];
 inner = r*r'

inner =

 14

外部产品也是如此

outer=r'*r

outer =

 1     2     3
 2     4     6
 3     6     9

外部应该具有NxN个组件(其中N是组件总数,此处为3)。内部,另一方面具有m x m个分量(其中m是行数,此处为1)。 我也希望能够对矩形矩阵执行此标准操作。矩形矩阵的内积很容易:

 r =

 1     2     3
 1     1     1

inner=r*r'

inner =

  14     6
  6     3

inner具有分量(2x2 = 4),这是我期望r与它的应答的矩阵乘法的结果。 但是,显然,我不清楚应该如何计算其自身的外部乘积,因为现在“带有应答的内部乘积”和“具有自身的外部乘积”的定义在matlab中具有相同的语法。确实,如果我尝试重复对向量r所做的操作,则会得到:

outer=r'*r

outer =

 2     3     4
 3     5     7
 4     7    10

不是r与自身的外部乘积,因为它不具有NxN = 36而是只有nxn = 9个分量(其中n是列数)这一事实很明显。 matlab解释我的计算是r应答和r的内积。 如何获得适当的外部乘积,其成分是r的成分之间的乘积的全部组合?

1 个答案:

答案 0 :(得分:2)

matlab仅用于计算matrix multiplication的作用。

我想您想要的是Kronecker product。可以通过matlab中的kron函数来完成。