通过Go中的查找表在对象中创建变量的函数

问题描述

我是Go的新手,所以这可能很简单,但是数小时的教程仍然让我不确定。我正在运行一个处理磁性纳米粒子的物理模拟器。在此模拟器(vinamax)中,您可以将磁场定义为时间t的函数,时间t是程序中定义的变量。但是,我不想使用像sin(b * t)这样的简单数学函数,而是要使用实验中的实际数据来定义该函数我有一张表,其中包含时间值和当时的相应磁场值。我想调用我的“函数”而不是预定的数学函数作为查找表。我需要将其定义为运行模拟器的软件包的一部分吗?如果是这样,我怎么能告诉调用方法选择与我的函数的当前时间索引最匹配的磁场值(假设程序的时间索引与我的“函数”定义的时间点不完全匹配)?感谢您的任何建议。

解决方法

我不知道您数据中的时间是否均分?

也许您可以新建一个地图,将时间传递到unix时间戳作为键,并将磁场值作为值。

在函数中,匹配键使用二进制搜索算法传递的时间参数。