使用 TriScatteredInterp 的二维插值 (Matlab)
2D interpolation using TriScatteredInterp (Matlab)
让我们考虑一下我有一组点,它们被描述为一对二维坐标。在每个点,我都有给定参数的值,比方说,温度。
Point 1 : (x1, y1, t1)
Point 2 : (x2, y2, t2)
...
Point n : (xn, yn,tn)
所有这些点都包含在一个三角形的二维域中。
我想在整个域的范围内插入参数 t。对我来说,任何插值方法(线性、最近邻等)都可以。我深信我使用 MATLAB 实现了这一点——更准确地说是使用 TriScatteredInterp
。但是,它似乎不起作用。它无法创建插值。
这是我到目前为止尝试过的方法:
x = [0, 1, 1, 0]
y = [0, 0, 1, 1]
t = [10, 20, 30, 20]
F = TriScatteredInterp(x, y, t)
最后一行产生以下错误:
??? Error using ==> TriScatteredInterp
Input data must be specified in column-vector format.
看来我输入的方式不对。我已经对 Google 进行了一些研究,但我找不到问题所在。
非常感谢任何帮助,谢谢。
错误很明显...它说数据必须在列向量中。您将它们作为行向量。简单地说,在调用函数之前转置你的数据:
>> F = TriScatteredInterp(x.', y.', t.')
F =
TriScatteredInterp with properties:
X: [4x2 double]
V: [4x1 double]
Method: 'linear'
FWIW,如果您阅读文档,您会发现列向量是必需的:http://www.mathworks.com/help/matlab/ref/triscatteredinterp.html
创建插值后,您可以在插值中使用任何大小的任何 (x,y)
坐标,结果将给出与 x
和 x
的大小匹配的插值y
...所以这样的事情可以工作:
[X,Y] = meshgrid(linspace(min(x),max(x)), linspace(min(y),max(y)));
out = F(X,Y);
输出将是应用于插值的 (x,y)
坐标的网格...基本上,您将使用 X
和 Y
作为唯一 (x,y)
对.
让我们考虑一下我有一组点,它们被描述为一对二维坐标。在每个点,我都有给定参数的值,比方说,温度。
Point 1 :
(x1, y1, t1)
Point 2 :
(x2, y2, t2)
...
Point n :
(xn, yn,tn)
所有这些点都包含在一个三角形的二维域中。
我想在整个域的范围内插入参数 t。对我来说,任何插值方法(线性、最近邻等)都可以。我深信我使用 MATLAB 实现了这一点——更准确地说是使用 TriScatteredInterp
。但是,它似乎不起作用。它无法创建插值。
这是我到目前为止尝试过的方法:
x = [0, 1, 1, 0]
y = [0, 0, 1, 1]
t = [10, 20, 30, 20]
F = TriScatteredInterp(x, y, t)
最后一行产生以下错误:
??? Error using ==>
TriScatteredInterp
Input data must be specified in column-vector format.
看来我输入的方式不对。我已经对 Google 进行了一些研究,但我找不到问题所在。
非常感谢任何帮助,谢谢。
错误很明显...它说数据必须在列向量中。您将它们作为行向量。简单地说,在调用函数之前转置你的数据:
>> F = TriScatteredInterp(x.', y.', t.')
F =
TriScatteredInterp with properties:
X: [4x2 double]
V: [4x1 double]
Method: 'linear'
FWIW,如果您阅读文档,您会发现列向量是必需的:http://www.mathworks.com/help/matlab/ref/triscatteredinterp.html
创建插值后,您可以在插值中使用任何大小的任何 (x,y)
坐标,结果将给出与 x
和 x
的大小匹配的插值y
...所以这样的事情可以工作:
[X,Y] = meshgrid(linspace(min(x),max(x)), linspace(min(y),max(y)));
out = F(X,Y);
输出将是应用于插值的 (x,y)
坐标的网格...基本上,您将使用 X
和 Y
作为唯一 (x,y)
对.