请教一个计算方法
本帖最后由 77554971 于 2016-3-2 18:25 编辑要求,输入一个数(取值范围1000-2000),通过计算后输出的值范围变成700-2300,是按比例变化的,相当于如果输入1000,输出是700,输入1001,输出701,如果输入2000,输出是2300,如果输入1999,输出2299了,就是这样个意思!肯定不可能查表,所以问问大家能不能写个计算公式? y=(x-1000)*1.6+700,但是输入1999,输出2999这是什么鬼??? 本帖最后由 77554971 于 2016-3-2 18:32 编辑
prow 发表于 2016-3-2 18:12
y=(x-1000)*1.6+700,但是输入1999,输出2999这是什么鬼???
打错了,是2299,减小一个数,不好意思 77554971 发表于 2016-3-2 18:25
打错了,是2299,减小一个数,不好意思,不过你这里也不对了,X如果等于700,都不够减了 ...
你自己不是说x的范围是1000到2000怎么又变成700 asj1989 发表于 2016-3-2 18:31
你自己不是说x的范围是1000到2000怎么又变成700
又看错了!!!唉,检讨! 谢谢,可用,解决问题 直接excel文档就可以拟合了 10xjzheng 发表于 2016-3-2 19:04
直接excel文档就可以拟合了
没懂你说的方法 77554971 发表于 2016-3-2 19:47
没懂你说的方法
百度 他这也不是拟合啊。。。
就是最简单的一个映射 prow 发表于 2016-3-2 18:12
y=(x-1000)*1.6+700,但是输入1999,输出2999这是什么鬼???
你好,能不能解析一下这条公式,谢谢 初中数学老师哭晕在厕所 数据总线 发表于 2016-3-8 17:26
你好,能不能解析一下这条公式,谢谢
这是一个从1000-2000 到 700-2300的映射
公式:(y-700)/(2300-700) = (x-1000)/(2000-1000)
然后化简一下就是y=(x-1000)*1.6+700了 void linermap(const float L_max, const float L_min,\
const float tar_max, const float tar_min,\
const float input_t, float* output_t )
{
float input = constrain_float(input_t,L_min,L_max);
float in_t=(input-L_min)/(L_max-L_min);
*output_t= tar_min+( (tar_max-tar_min)*in_t);
}
页:
[1]