矩阵索引/展平

问题描述 投票:0回答:1

我得到一个维度为

dim = nxmx4
的矩阵。我想使用 3 个嵌套的 for 循环将此矩阵展平为长度为
l = n*m*4
的新一维矩阵。

for (let x = 0; x < n; x++) {
    for (let y = 0; y < m; y++) {
        for (let i = 0; i < 4; i++) {
            let index = ?;
            newMatrix[index] = matrix[x][y][i];
        }
    }
}

此外,条件

index % 4 == i
应始终成立。

更准确地说,matrix[x][y][i] 的值现在并不重要(可以是任意的),只要每次迭代索引增加 1 即可。 对于 i = 0 -> index = 0, 4, 8, ... 应该返回 | i = 1 -> 索引 = 1, 5, 9, ... | i = 2 -> 索引 = 2, 6, 10, ... |并且 i = 3 -> 索引 = 3, 7, 11, ...

我现在无法提出正确的索引。预先感谢。

javascript loops matrix indexing flatten
1个回答
0
投票

您可以使用

index = x * m * 4 + y * 4 + i;

let newMatrix = [];
for (let x = 0; x < n; x++) {
  for (let y = 0; y < m; y++) {
    for (let i = 0; i < 4; i++) {
      let index = x * m * 4 + y * 4 + i;
      newMatrix[index] = matrix[x][y][i];
    }
  }
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.