Ios 如何在一长串数字中计算百分位数(如中位数)

Ios 如何在一长串数字中计算百分位数(如中位数),ios,core-data,percentile,Ios,Core Data,Percentile,我将使用手机内加速度计的数据,并从中计算角度。其思想是使用核心数据将角度数据存储在阵列中,或将其写入文件 但我仍然需要做一些计算,例如中位数和90%的数字。我怎么做呢?我应该先存储整个数据,然后进行计算,比如从最小到最大排序,然后计数吗 我想不出一个好办法。如果有人有什么建议,我将不胜感激 上述注释中可能重复的解决方案使用NSExpression,它确实具有中值:功能。但是对于百分位数,我认为你必须手动计算,按照你的建议进行排序然后计算。但是请记住,您可以使用fetchOffset和fetchB

我将使用手机内加速度计的数据,并从中计算角度。其思想是使用核心数据将角度数据存储在阵列中,或将其写入文件

但我仍然需要做一些计算,例如中位数和90%的数字。我怎么做呢?我应该先存储整个数据,然后进行计算,比如从最小到最大排序,然后计数吗


我想不出一个好办法。如果有人有什么建议,我将不胜感激

上述注释中可能重复的解决方案使用NSExpression,它确实具有
中值:
功能。但是对于百分位数,我认为你必须手动计算,按照你的建议进行排序然后计算。但是请记住,您可以使用
fetchOffset
fetchBatchSize
来避免将所有行读入内存。我不明白为什么需要使用
fetchOffset
?你是什么意思,以避免阅读记忆?现在我使用了
sortDescriptor
,我可以通过使用
ObjectAtIndex
获得90%的数据。它似乎工作得很好@Mushroomcloud很抱歉延迟回复-您不需要使用
fetchOffset
,但可以使用它来避免将所有角度加载到内存中。您可以有效地“获取第90个百分位点的一个(或两个)值以进行插值”,而不是“获取所有内容,对其进行排序,然后找到90个百分位点”。但是如果内存不是问题,那么请坚持使用
objectAtIndex