【问题标题】: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]

【问题讨论】:

    标签: c++ matrix vector


    【解决方案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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      相关资源
      最近更新 更多