我得到一个维度为
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, ...
我现在无法提出正确的索引。预先感谢。
您可以使用
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];
}
}
}