我有一个需要重组的12乘50阵列。数组表示双变量概率分布p(a,b)
,其中a
和b
是非笛卡尔坐标。但是,我想重新绑定它,以便我在笛卡尔坐标p(x,y)
中进行分布。
a
和b
(温和地)与x
和y
非常相关,但我做出了(a,b)
二进制文件看起来像凸四边形的简化假设(弯曲的盒子!)在(x,y)
空间。我可以在所有bin角处制作与(a,b)
到(x,y)
相关的查找表。
任何人都知道这种重组的算法,以免我重新发明轮子?
我特别寻找分析解决方案,但是我会寻求解决方案,包括将(a,b)
箱子切割成许多小型垃圾箱,并根据它们的中心位置在适当的(x,y)
垃圾箱中进行分类。
请注意,这是一个重组任务,不仅仅是一个插值(这将是一块蛋糕)。
答案 0 :(得分:2)
您可以尝试两种常见的解决方案类别。一个是精确的分析方法:找出与f
重叠的bin (a,b)
的确切分数区(x,y)
,然后只为所有重叠{{1}总结f*p(a,b)
并且a
为该bin获取b
。 (如果p(x,y)
箱的大小不同,则应找到实际区域并除以a,b
箱柜的面积。)如果箱柜边界的方程式足够简单,如果有点乏味,这应该是相对简单的。
另一类是抗锯齿,与计算机图形中使用的方法相同。基本上,您使用一堆等间距的点替换(x,y)
处的整个bin,并将这些点放入(a,b)
平面并将它们添加到包含该值的bin中。因此,例如,使用4的抗锯齿,您可以想象一个点x,y
,(a+3/8,b+3/8)
,(a+1/8,b+3/8)
,......的数组,每个点包含1/16的值(a-1/8,b+3/8)
bin;然后,您将找到这16个位置中的每一个位于(a,b)
平面上的位置,并将1/16值添加到每个区域。
(也存在随机解决方案,但对于您的问题,它们会引入更大的错误并需要更长的时间来计算。)