【发布时间】:2016-11-03 00:36:35
【问题描述】:
我很抱歉这可能是编程 101,但我的经验有限,因为编程对我来说不是日常活动。如果之前已经回答过一百万次,我也很抱歉,但我在搜索中没有成功找到它,因为我不确定这会被认为是什么(字典?对象?列表?)
我想创建一个有序 doubles 列表,这些列表对应于我感兴趣的特定属性,如下所示:
[(a1,a2,a3,...),(b1,b2,b3,...),(c1,c2,c3,...),...]
我的程序将计算一个输入 (a_input),它很可能位于值列表之间,例如:
a3 然后,我希望程序能够识别它在 a3 和 a4 之间,并使用此信息对其他值进行线性插值,例如: (a_input - a3)/(a4 - a3) = (c_input - c3)/(c4-c3) 这将输出我感兴趣的值(例如 c_input)来运行我的程序的其余部分。 我将如何做到这一点?我考虑过一种字典方法,但我不想要键字符串,因为所有值都可以很容易地被排序为数字。 我们将不胜感激任何输入或查找信息的方向。
【问题讨论】:
-
我只需在列表中订购 a0-an,然后对输入使用 BinarySearch()。如果它返回n,其中n是正数,那么输入就是an,如果它是负数,则输入在a[~n]和a[~n]+1之间
-
感谢您对 Martheen 的反馈。不幸的是,我不相信它会这么简单。 a1,a2,a3,... 都对应于同一对象的属性,而 b1,b2,b3,.. 等对应于不同对象的属性,所以我不确定如何对列表进行排序。
-
如果这是时间序列数据,字典正是您所需要的。
-
展示一个更具体的例子。我们仍在试图弄清楚 a1、a2、b3 等是什么。
标签: c# object dictionary interpolation