【问题标题】:How to invert the dimensions of a matrix (with each other)?如何反转矩阵的维度(彼此)?
【发布时间】:2016-09-03 18:57:40
【问题描述】:

我有以下矩阵:

const double values[3][41] = { { -116.99, -116.99, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -72.385, -60.657,
        -72.385, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99 }, { -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -97.597, -81.568,
        -74.745, -66.323, -74.745, -81.568, -97.597, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
        -116.99, -116.99, -116.99, -116.99, -116.99, -116.99 },
        { -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
                -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
                -116.99, -107.26, -97.836, -89.451, -83.642, -78.459, -71.99,
                -78.459, -83.642, -89.451, -97.836, -107.26, -116.99, -116.99,
                -116.99, -116.99, -116.99, -116.99, -116.99, -116.99, -116.99,
                -116.99, -116.99, -116.99, -116.99, -116.99, -116.99 }}

有没有一种快速的方法可以将其转换为values[3][41],同时保持值的正确性

这些值来自将输出写入为[y][x] 而不是[x][y] 的设备。我虽然编写了一个包装函数来调用矩阵中的值,但也许有一种方法可以反转轴。

【问题讨论】:

  • 没有这样的方法。您的方法是正确的(除了“物理”变换矩阵)
  • 也许见stackoverflow.com/questions/16737298/…,但包装函数听起来不错,因为您不需要移动任何数据。
  • 您应该向我们展示这些值是如何从设备写入实际数组的。

标签: c++ matrix multidimensional-array


【解决方案1】:

你只需要遍历它:

const double values[3][41] = {...};
double newValues[41][3];

for(int i=0; i<3; ++i) {
    for(int j=0; j<41; ++i) {
        newValues[j][i] = values[i][j];
    }
}

但是,这需要两倍的内存空间。也可以在内存中重新排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多