大矩阵的Opencv乘法

时间:2015-01-09 09:18:14

标签: c++ opencv matrix

我有2个维度为1 * 280000的矩阵。

我想使用opencv将一个矩阵与转置的第二个矩阵相乘。

我尝试使用乘法运算符(*)将它们相乘。

但它给了我错误:'总大小矩阵不适合size_t类型'

在乘法后,矩阵的大小将为280000 * 28000。

所以,我认为乘法应该是32位。

有没有办法进行32位乘法?

1 个答案:

答案 0 :(得分:1)

为什么你想这样倍增?但是因为这是一个答案,我想帮助你思考的不仅仅是:

  • 假设您有两个矩阵:ABA.size() == B.size() == [1x280000])。
  • A * B.t() = AB(AB就是结果)
  • 然后AB = [A[0][0]*B A[0][1]*B ... A[0][279999]*B](每列是转置矩阵乘以另一个矩阵的对应元素)

AB也可以写成:

[ B[0][0]*A
  B[0][1]*A
  ...
  B[0][279999]*A]

(结果的每一行都是行矩阵乘以列的相应元素(转置)矩阵)

希望这可以帮助你做你正在做的事情...使用for循环你可以打印,存储,或者你需要的结果