如何根据两个数组中所有元素的乘积创建矩阵?

时间:2019-05-21 11:55:08

标签: arrays matlab matrix product multiplication

我正在阅读关于documentation的关于matlab的逐元素乘法运算,我遇到了以下示例:

  

创建行向量a和列向量b,然后将它们相乘。的   1×3行向量和6×1列向量组合产生6×3   所有元素组合都相乘的矩阵。

文档肯定显示了输出,但是它们如何到达大小为6,3的输出矩阵?通过使用文档中说明的方法,将大小为b的列向量6,1和大小为a的行向量1,3相乘而获得。

1 个答案:

答案 0 :(得分:2)

这称为广播。当一个维度为1而另一维度更大时,单位维度将展开,就像使用repmat

 6 1 : column
 1 3 : row
 ------
 6 3 : result

给予

a = 1:3
b = [1:6]'
a .* b

大致等同于

a2 = repmat(a, 6, 1)
b2 = repmat(b, 1, 3)
a2 .* b2

但是广播当然可以提高存储效率。