0
我正在处理动态维度的数组,我必须创建一个方法来删除指定的维度,以便数组中所有元素的总和不会发生变化。从阵列中删除尺寸
例如:
[[18, 7], [11,19]]
卸下尺寸0的结果[29,26] 在[25,30]
卸下维1分的结果我已经使用了行优先顺序转换为平面阵列和计算补偿:
int offset = dimensionIndices[dimensionSizes.length - 1];
for (int d = dimensionSizes.length - 2; d >= 0; --d) {
offset = offset * dimensionSizes[d] + dimensionIndices[d];
}
return offset;
我真的不确定如何继续删除维度和分布其他元素的值。
我会很感激有关如何去做这件事的一些建议。
更新一些3D例如:
array = createArray(2, 2, 2);
int value = 0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 2; k++) {
array.setValue(value, i, j, k);
++value;
}
}
}
代表以行优先顺序结果:
[0, 4, 2, 6, 1, 5, 3, 7]
除去尺寸0应该给:
[4, 8, 6, 10]
拆除尺寸1应该给:
[2, 4, 10, 12]
删除尺寸2应该给:
[1, 9, 5, 13]
因此,用它们的总和替换每个内部数组? – Aleksandar
你能比2x2更高的尺寸吗?如何在3x3上移除尺寸? – Aleksandar
@Aleksandar我已编辑包含3D示例 – Benirving92