为什么不能将两个相同尺寸的矩阵(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)
答案 0 :(得分:1)
*
是矩阵乘法运算符,因此如果A
是n
- by - m
矩阵且B
是x
- 通过 - y
矩阵
A*B
要有效,您需要内部尺寸匹配,因此m
必须等于x
。或者换句话说,A
(在您的情况下为3
)的列数必须等于B
的列数(在您的情况下为1
)。
一些解决方案:
你想要inner product:
A*B.' % result is a scalar (1-by-1)
A.'*B % result is a 3-by-3 matrix
否则你想要逐元素乘法(即将每个元素与它相乘的元素相乘,假设两个矩阵具有相同的大小),即.*
运算符:
A.*B % result is a 1-by-3
答案 1 :(得分:0)
矩阵尺寸应匹配:第二个矩阵的列必须与第一个矩阵的行数相同。对于您的情况,您可以乘以a*b^T
或a^T*b
,具体取决于您尝试实现的目标。还有Hadamard乘积(元素乘法),但它不被视为矩阵乘法。