所以我有一个包含 500,000 个元素的数组:
float* arrayToBucketize=(float*) malloc(sizeof(float)*500000);
和一个代表桶的数组:
int buckets[5]={0,25,50,75,100};
通过第一个数组的最快方法是什么,查看每个浮点值,将其与“桶”数组进行比较,然后用最接近的桶值替换该浮点值。因此,如果浮点值为 11.25,它将被替换为 0。另一方面,90.10 将被替换为 100。
此外,我需要该范围之外的任何值(<0 和 >100)保持不变。
我知道我可以用 for 循环和 if 条件来做到这一点;但是在优化的坏习惯中,我试图找到一种更有效(更快)的方式来做到这一点。我希望 Accelerate 框架中有一个 C 函数或 iOS 函数可以做到这一点。或者可能是一系列 Accelerate 框架矩阵函数。
谢谢