乘以相同维度的矩阵返回错误

时间:2016-06-15 14:47:41

标签: matrix octave matrix-multiplication

为什么不能将两个相同尺寸的矩阵(1x3)相乘? :

>> a = [1 1 1]
a =

   1   1   1

>> b = [1 1 1]
b =

   1   1   1

>> a * b
error: operator *: nonconformant arguments (op1 is 1x3, op2
is 1x3)

2 个答案:

答案 0 :(得分:1)

*是矩阵乘法运算符,因此如果An - by - m矩阵且Bx - 通过 - y矩阵

A*B

要有效,您需要内部尺寸匹配,因此m必须等于x。或者换句话说,A(在您的情况下为3)的列数必须等于B的列数(在您的情况下为1)。

一些解决方案:

你想要inner product

A*B.'      % result is a scalar (1-by-1)

outer product

A.'*B      % result is a 3-by-3 matrix

否则你想要逐元素乘法(即将每个元素与它相乘的元素相乘,假设两个矩阵具有相同的大小),即.*运算符:

A.*B       % result is a 1-by-3

答案 1 :(得分:0)

矩阵尺寸应匹配:第二个矩阵的列必须与第一个矩阵的行数相同。对于您的情况,您可以乘以a*b^Ta^T*b,具体取决于您尝试实现的目标。还有Hadamard乘积(元素乘法),但它不被视为矩阵乘法。