如果我有一个向量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的成分之间的乘积的全部组合?
答案 0 :(得分:2)
matlab仅用于计算matrix multiplication的作用。
我想您想要的是Kronecker product。可以通过matlab中的kron函数来完成。