我有一个来源Float32Array
,我从中创建了一个辅助Float32Array
。我有一个值为model
的序列,我想将其作为重复序列复制到第Float32Array
。我目前正在使用reverse while循环执行此操作。更有效的方法将重复序列复制到TypedArray中?
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
@rajesh我从一个更多涉及的例子中截取了这个。具体原因是3,7,11,15是未使用的4×4矩阵的最后一列 – kevzettler
因此,我们应该假设在'N×M'矩阵中,总是不使用'm-1'列? – Rajesh