我尝试过搜索logarithm + objective-c,但我得到的只是教师的数学测试页,或解释对数是什么;)
我有一些测量值,如83912.41234,其他测量值为32.94232。我需要将这个巨大的光谱压缩到0到100之间,并且32.94232至少应该大于2,其中83912.41234将接近100.所以我认为对数函数将是我的朋友。
更新: 我通过“快速打开”(在Xcode中非常好的命令:SHIFT + CMD + D)遇到了math.h文件,并且出现了很大的惊喜:
extern double log ( double );
extern float logf ( float );
extern double log10 ( double );
extern float log10f ( float );
extern double log2 ( double );
extern float log2f ( float );
extern double log1p ( double );
extern float log1pf ( float );
extern double logb ( double );
extern float logbf ( float );
但是:没有文字,没有评论。我不是一个数学怪人。因此,一些描述会很好,即什么样的对数适用于什么情况,曲线如何,等等...所以任何伟大的链接都非常受欢迎!
答案 0 :(得分:15)
此外,获得具有任意基数的对数:
float logx(float value, float base)
{
return log10f(value) / log10f(base);
}
答案 1 :(得分:2)
math.h是一个标准包含。 wikipedia页面有一些文档。
“挤压”值的另一种方法是使您的值适合直线。例如:
直线方程
y = mx + c
y = 'squished' value.
x = The value you want to squish
m = Gradient of the line
c = intercept on the y axis
快速计算您的值会产生类似的结果:
y = 1.17e-3 x + 1.96
希望这有帮助。
答案 2 :(得分:1)
如何抓取有关C标准库函数的书?
否则,您可以尝试手册页:
man 3 logf
,例如