按列而不是行存储矩阵[重复]

Posted

技术标签:

【中文标题】按列而不是行存储矩阵[重复]【英文标题】:Store a matrix by columns instead of rows [duplicate] 【发布时间】:2020-10-30 23:11:14 【问题描述】:

如果给定矩阵:

A B C

D E F

G H 我

并按行存储在向量中:

[A、B、C、D、E、F、G、H、I]

如何将上述向量与 for 循环一起使用,将转置后的版本存储在另一个向量中。

[A、D、G、B、E、H、C、F、I]

【问题讨论】:

【参考方案1】:

旧向量中有 3 行包含 3 个元素(因为列数为 3),而新向量中将有 3 列包含 3 个元素(因为行数为 3)。

因此,可以这样实现:

int nRows = 3, nCols = 3;
for (int i = 0; i < nRows * nCols; i++) 
    int r = i / nCols, c = i % nCols;
    new[c * nRows + r] = old[r * nCols + c];

【讨论】:

以上是关于按列而不是行存储矩阵[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python - csv writer 按列而不是按行写入

数据框字符串拆分为列而不是行[重复]

如何逐行读取 Matlab mex 函数的输入矩阵?

如何逐行读取 Matlab mex 函数的输入矩阵?

如何将向量重新排列为列而不是行?

熊猫仅分箱时间列而不是自定义范围中的日期[重复]