【发布时间】:2017-09-20 04:08:10
【问题描述】:
我有一个来源Float32Array,我从中创建了一个辅助Float32Array。我有一个值序列model,我想将其作为重复序列复制到辅助Float32Array。我目前正在使用反向 while 循环执行此操作。
sequence = [1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0];
n = 3179520; //divisible by sequence length
modelBuffs = new Float32Array(n);
var v = modelBuffs.length;
while(v-=12){
modelBuffs[v-12] = sequence[0];
modelBuffs[v-11] = sequence[1];
modelBuffs[v-10] = sequence[2];
modelBuffs[v-9] = sequence[3];
// YTransform
modelBuffs[v-8] = sequence[4];
modelBuffs[v-7] = sequence[5];
modelBuffs[v-6] = sequence[6];
modelBuffs[v-5] = sequence[7];
// ZTransform
modelBuffs[v-4] = sequence[8];
modelBuffs[v-3] = sequence[9];
modelBuffs[v-2] = sequence[10];
modelBuffs[v-1] = sequence[11];
}
很遗憾,n 可能是未知的。如果没有替代解决方案,我可能必须进行重大重构。我希望我可以设置一次序列,并且有一个副本/重复填充/按位操作来重复初始字节序列。
编辑简化示例输入
【问题讨论】:
-
据我所见,您有一个模式,但您没有使用
3, 7,11,15的值。有什么具体原因吗? -
@rajesh 我从一个更复杂的例子中截取了这个。具体原因是3,7,11,15是4x4矩阵的最后一列没有用到
-
那么我们是否应该假设在
NxM矩阵中,总是不使用m-1列? -
我将编辑示例以简化它,以免分散注意力。问题仍然存在。如何复制一个重复的字节序列
-
有copyWithin方法,但不一定比循环快。
标签: javascript iteration bit-manipulation typed-arrays