77554971 发表于 2016-3-2 18:06:15

请教一个计算方法

本帖最后由 77554971 于 2016-3-2 18:25 编辑

要求,输入一个数(取值范围1000-2000),通过计算后输出的值范围变成700-2300,是按比例变化的,相当于如果输入1000,输出是700,输入1001,输出701,如果输入2000,输出是2300,如果输入1999,输出2299了,就是这样个意思!肯定不可能查表,所以问问大家能不能写个计算公式?

prow 发表于 2016-3-2 18:12:57

y=(x-1000)*1.6+700,但是输入1999,输出2999这是什么鬼???

77554971 发表于 2016-3-2 18:25:49

本帖最后由 77554971 于 2016-3-2 18:32 编辑

prow 发表于 2016-3-2 18:12
y=(x-1000)*1.6+700,但是输入1999,输出2999这是什么鬼???

打错了,是2299,减小一个数,不好意思

asj1989 发表于 2016-3-2 18:31:21

77554971 发表于 2016-3-2 18:25
打错了,是2299,减小一个数,不好意思,不过你这里也不对了,X如果等于700,都不够减了 ...

你自己不是说x的范围是1000到2000怎么又变成700

77554971 发表于 2016-3-2 18:36:37

asj1989 发表于 2016-3-2 18:31
你自己不是说x的范围是1000到2000怎么又变成700

又看错了!!!唉,检讨!

77554971 发表于 2016-3-2 18:38:26

谢谢,可用,解决问题

10xjzheng 发表于 2016-3-2 19:04:28

直接excel文档就可以拟合了

77554971 发表于 2016-3-2 19:47:13

10xjzheng 发表于 2016-3-2 19:04
直接excel文档就可以拟合了

没懂你说的方法

10xjzheng 发表于 2016-3-2 20:16:35

77554971 发表于 2016-3-2 19:47
没懂你说的方法

百度               

prow 发表于 2016-3-2 20:21:36

他这也不是拟合啊。。。
就是最简单的一个映射

数据总线 发表于 2016-3-8 17:26:26

prow 发表于 2016-3-2 18:12
y=(x-1000)*1.6+700,但是输入1999,输出2999这是什么鬼???

你好,能不能解析一下这条公式,谢谢

canspider 发表于 2016-3-8 17:37:51

初中数学老师哭晕在厕所

prow 发表于 2016-3-8 18:10:08

数据总线 发表于 2016-3-8 17:26
你好,能不能解析一下这条公式,谢谢

这是一个从1000-2000   到    700-2300的映射
公式:(y-700)/(2300-700) = (x-1000)/(2000-1000)
然后化简一下就是y=(x-1000)*1.6+700了

qwe2231695 发表于 2016-3-9 12:59:37

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]
查看完整版本: 请教一个计算方法