我有一个包含 1M float 的 float 组
我想做采样:对于每 4 个 float ,我只想取 1 个。所以我正在这样做:
for(int i = 0; i< floatArray.Length; i++) {
if(i % 4 == 0) {
resultFloat.Add(floatArray[i])
}
}
这很好用,但是遍历所有元素需要很多时间,是否有其他方法可以使它获得更好的结果(如果有的话)
最佳答案
我可以看到两个可能会降低性能的因素。
因为已经给你提供了,你应该将步骤设置为 4:
for (int i = 0; i < floatArray.Length; i += 4) { resultFloat.Add(floatArray[i]); }
看起来
resultFloat
是float
的列表。我建议使用数组而不是列表,如下所示:int m = (floatArray.Length + 3) / 4; float[] resultFloat = new float[m]; for (int i = 0, k = 0; i < floatArray.Length; i += 4, k++) { resultFloat[k] = floatArray[i]; }
关于c# - 从数组中采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47980427/