如何在Matlab中内插和外推非单调向量数据集
How to interpolate and extrapolate non-monotonic vector data set in Matlab
我有一个地理分布的数据集,X坐标,Y坐标和相应的感兴趣的目标值D。也就是说,我的数据集由三个向量组成:X,Y,D.
现在我想做的是在感兴趣的坐标网格上内插和外推目标变量 D。 Matlab 中的 griddata
-函数似乎可以帮助我解决这个问题,但它只对由我的数据集确定的凸包进行插值。
我想做的是将数据 D 外推到任何感兴趣的直角坐标网格,如下所示:
我曾尝试使用 interp2
和 griddedInterpolant
等函数,但这些函数似乎要求我提供已知数据作为单调矩阵(例如使用 meshgrid
)。也就是说,如果我理解正确,我必须提供 X,Y,D 作为二维网格。但它们不是网格,它们是非单调向量。
那我该如何继续呢?
您可以将 griddata 与使用双调和样条插值的选项 'v4'
一起使用。
Unlike the other methods, this interpolation is not based on a triangulation.
其他选项正在使用 scatteredInterpolant。您可以选择使用任何 'linear'
或 'nearest'
方法进行外推
我找到了一种使用 scatteredInterpolant
的方法:
xy = -2.5 + 5*gallery('uniformdata',[200 2],0);
x = xy(:,1);
y = xy(:,2);
v = x.*exp(-x.^2-y.^2);
F1 = scatteredInterpolant(x,y,v, 'natural');
[xq,yq] = ndgrid(-5:.1:5) % Make the grid
vq1 = F1(xq,yq); % Evaluate function values at grid of interest
surf(xq,yq,vq1)
hold on
plot3(x,y,v, 'ro', 'MarkerFaceColor', 'red')
xlabel('X')
ylabel('Y')
zlabel('V')
title('Interpolation and exrapolation based on scattered data')
问题是,您只能使用三种方法进行外推:'linear
'、'nearest
'、'natural
'。
我有一个地理分布的数据集,X坐标,Y坐标和相应的感兴趣的目标值D。也就是说,我的数据集由三个向量组成:X,Y,D.
现在我想做的是在感兴趣的坐标网格上内插和外推目标变量 D。 Matlab 中的 griddata
-函数似乎可以帮助我解决这个问题,但它只对由我的数据集确定的凸包进行插值。
我想做的是将数据 D 外推到任何感兴趣的直角坐标网格,如下所示:
我曾尝试使用 interp2
和 griddedInterpolant
等函数,但这些函数似乎要求我提供已知数据作为单调矩阵(例如使用 meshgrid
)。也就是说,如果我理解正确,我必须提供 X,Y,D 作为二维网格。但它们不是网格,它们是非单调向量。
那我该如何继续呢?
您可以将 griddata 与使用双调和样条插值的选项 'v4'
一起使用。
Unlike the other methods, this interpolation is not based on a triangulation.
其他选项正在使用 scatteredInterpolant。您可以选择使用任何 'linear'
或 'nearest'
方法进行外推
我找到了一种使用 scatteredInterpolant
的方法:
xy = -2.5 + 5*gallery('uniformdata',[200 2],0);
x = xy(:,1);
y = xy(:,2);
v = x.*exp(-x.^2-y.^2);
F1 = scatteredInterpolant(x,y,v, 'natural');
[xq,yq] = ndgrid(-5:.1:5) % Make the grid
vq1 = F1(xq,yq); % Evaluate function values at grid of interest
surf(xq,yq,vq1)
hold on
plot3(x,y,v, 'ro', 'MarkerFaceColor', 'red')
xlabel('X')
ylabel('Y')
zlabel('V')
title('Interpolation and exrapolation based on scattered data')
问题是,您只能使用三种方法进行外推:'linear
'、'nearest
'、'natural
'。