我有 2 个维度为 1*280000 的矩阵。
我想使用 opencv 将一个矩阵与转置的第二个矩阵相乘。
我尝试使用乘法运算符 (*) 将它们相乘。
但它给我错误:'总大小矩阵不适合 size_t 类型'
乘法后大小为 280000*28000 的矩阵。
所以,我认为乘法应该是 32 位的。
有什么方法可以做32位乘法吗?
最佳答案
为什么要这样相乘?但因为这是一个答案,所以我想帮助您思考的不仅仅是去做:
- 假设您有两个矩阵:
A
和B
(A.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 循环您可以打印或存储,或者您需要的结果
关于c++ - 大矩阵的Opencv乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27857220/