在c++代码的中间,使用eclipse,我需要计算矩阵A和B的乘积,大小为2400*3600(因此维度不同)。矩阵存储在浮点型二维数组中。它们不是稀疏的,没有限制。
每次相乘都需要很长时间(几分钟),我需要严重减少这个时间,因为我有一个循环,重复5000万次。每次都需要将新的A和B相乘。欢迎任何建议以减少时间复杂度(即使更改数据存储结构,如果您认为可能会有所帮助)。例如,如果我将数据存储到一维数组中会怎样?或者使用向量代替数组?
在一个特定的情况下,第一列总是1,值为1、-1或零。对于这种情况有什么想法吗?
在其他情况下,值可以是任何东西。其中之一是X与其转置相乘。对于这个特定的情况是否有任何建议?
每次相乘都需要很长时间(几分钟),我需要严重减少这个时间,因为我有一个循环,重复5000万次。每次都需要将新的A和B相乘。欢迎任何建议以减少时间复杂度(即使更改数据存储结构,如果您认为可能会有所帮助)。例如,如果我将数据存储到一维数组中会怎样?或者使用向量代替数组?
在一个特定的情况下,第一列总是1,值为1、-1或零。对于这种情况有什么想法吗?
在其他情况下,值可以是任何东西。其中之一是X与其转置相乘。对于这个特定的情况是否有任何建议?
(i,j)->value
映射。 - Emile Cormier