3

我有一个标量Q(r, theta),我想在极坐标中插值。问题是 theta 从 0 运行到 2π。因此,在 0 和 2π 界面处存在不连续性,从而产生了问题。

我的原始数据位于非结构化网格上,因此我在 MATLAB 中使用 griddata。

4

2 回答 2

0

我会对域进行三角测量,基本上转换为笛卡尔坐标。三角测量当然会换行,因为它不再关心不连续性。现在,三角剖分内的插值将是微不足道的,它将正确使用位于该周期性边界上的信息。(TriScatteredInterp一旦转换为笛卡尔坐标,就足以解决这个问题。)

于 2013-05-31T00:03:29.473 回答
0

使用从 0 到 2π 的数据。我将它们从 -π 扩展为 3π,其中包含 [0, 2π] 的部分,因此数据变得连续。然后我使用扩展数据对位于 [0, 2π] 的网格进行插值。假设周期为 2π。

要知道不连续现象是因为插值函数认为0和2π是数据的边缘,但实际上它们不是极坐标的。

我使用的代码

[newele,newazi,newmp1]=expandData(ele,azi,mp1); 
elegrid = linspace(0,90,20); % Elevation of gridPoints 
azigrid = linspace(0,360,30); % Azimuth of gridPoints 
[X,Y] = meshgrid(elegrid,azigrid); 
Z = griddata(newele,newazi,newmp1,X,Y,'nearest');
于 2019-06-15T14:34:06.887 回答