首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab中两个矩形矩阵的外积

matlab中两个矩形矩阵的外积
EN

Stack Overflow用户
提问于 2019-02-19 19:31:20
回答 2查看 959关注 0票数 1

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

代码语言:javascript
复制
r=[1 2 3];
inner = r*r'
inner = 14

外部产品也是如此。

代码语言:javascript
复制
outer=r'*r

outer =

 1     2     3
 2     4     6
 3     6     9

Outer应该有NxN组件(其中N是组件的总数,这里是3)。内部,另一方面,有m x m个组件(其中m是行数,这里是1)。我也希望能够对矩形矩阵进行这种标准操作。矩形矩阵的内积非常简单:

代码语言:javascript
复制
 r =

 1     2     3
 1     1     1
 
inner=r*r'

inner =

  14    6
  6     3

内部有分量(2x2=4),这是我从r的转置矩阵乘法中得到的结果。实际上,如果我尝试重复我对向量r所做的操作,我会得到:

代码语言:javascript
复制
outer=r'*r

outer =

 2     3     4
 3     5     7
 4     7    10

它不是r与其自身的外积,因为它没有NxN=36,而只有nxn=9组件(其中n是列数)。MATLAB将我的计算解释为r转置和r的内积,我如何获得正确的外积,它的分量是r的分量之间的乘积的组合?

EN

回答 2

Stack Overflow用户

发布于 2019-02-19 20:35:50

MATLAB中的*运算符计算matrix multiplication

我猜你想要的是Kronecker product。它可以通过MATLAB中的kron函数来实现。

票数 4
EN

Stack Overflow用户

发布于 2021-11-03 16:40:46

如果您正在寻找一个6x6矩阵,您可能想要这样做

代码语言:javascript
复制
r(:) * r(:).'

r(:)是一个包含矩阵r的所有元素的向量。

如果您正在寻找r及其自身的张量外积,它的大小为2x3x2x3,则需要执行以下操作:

代码语言:javascript
复制
r .* shiftdim(r,-2)

(其中2是r中的维数,.*是隐式单例展开的逐个元素乘法。)

请注意,与kron(r,r) solution by yar一样,这两个答案都会生成相同的值集,但三个答案都会以不同的顺序放置结果元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54765320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档