如何从Matlab中的坐标值计算三角形插值?

时间:2018-08-03 10:34:24

标签: matlab interpolation

如果我有一个矩阵,其中第一列和第二列与坐标相关,第三列与一个值相关,我该如何插值第三列的值以创建iscurves和colorbar范围?

M=[
342854  657145  309
342996  657287  73
343137  657428  84
342006  657145  1122
342147  657287  777
342289  657428  426
342430  657570  638
342571  657711  200
342713  657852  787
341723  657711  1141
341864  657852  555
342006  657994  1157
342147  658135  355
342289  658277  374
341299  658135  467
341440  658277  672
341582  658418  459
341723  658560  735
341864  658701  781
341016  658701  1233
341157  658842  218
341299  658984  539
341370  659054  1351];

并获得类似附件的图片 interpolated_values

1 个答案:

答案 0 :(得分:2)

由于数据不在统一网格中,因此需要使用griddata进行插值。

[xq,yq]=meshgrid(linspace(min(M(:,1)),max(M(:,1)),100),linspace(min(M(:,2)),max(M(:,2)),100));
zq=griddata(M(:,1),M(:,2),M(:,3),xq(:),yq(:),'cubic'); %cubic for smoother results
[c,h]=contourf(xq,yq,reshape(zq,100,100));
clabel(c,h);

enter image description here