我有一个大小为
例如,我有向量:
n
的向量; 其中n
是2的幂。我需要将此向量视为矩阵n
= R
*C
。然后我需要转置矩阵。例如,我有向量:
[1,2,3,4,5,6,7,8]
我需要找到R和C。在这种情况下,它将是:4,2。并将向量视为矩阵:[1,2]
[3,4]
[5,6]
[7,8]
将其转置为:
[1, 3, 5, 7]
[2, 4, 6, 8]
进行转换后,向量应为:[1, 3, 5, 7, 2, 4, 6, 8]
是否存在可执行原地非方阵矩阵转置的算法?我不想重复造轮子。
我的向量非常大,因此我不想创建中间矩阵。我需要一种原地算法。性能非常重要。
- 所有修改都必须在原始向量中完成。理想情况下,算法应该使用适合于CPU缓存的块来工作。
- 由于内存局部性,我不能使用迭代器。所以我需要真正的转置。
- 无论矩阵是2x4还是4x2都没有关系
R
和C
,在您的案例中,R
可以是4或2,而C
可以是2或4。 - Pixelchemist2x4 == 4x2 == 8 != 3x3 == 9
- Pixelchemist