如何从 Matlab 中的坐标值计算三角插值?
How to calculate a triangular interpolation from values in coordinates in Matlab?
如果我有一个矩阵,其中第一列和第二列与坐标相关,第三列与值相关,我如何插入第三列值来创建 iscurves 和颜色条范围?
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];
并获得类似附件图片的东西
由于您的数据不在一个统一的网格中,您需要使用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);
如果我有一个矩阵,其中第一列和第二列与坐标相关,第三列与值相关,我如何插入第三列值来创建 iscurves 和颜色条范围?
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];
并获得类似附件图片的东西
由于您的数据不在一个统一的网格中,您需要使用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);