MATLAB で、あるグリッドから別のグリッドにデータを補間しようとしています。では、最初のグリッドは不等間隔ですがy
、2 番目のグリッドはそうではありません。内挿を ( を使用してgriddata
) 実行すると、データが存在しない領域をまたいで結果が外挿されます。
これがコードで、補間前後のプロットです。
入力変数:
Xin2 = [619000 619000 619000 619000 619000 619000
621000 621000 621000 621000 621000 621000
623000 623000 623000 623000 623000 623000
625000 625000 625000 625000 625000 625000
627000 627000 627000 627000 627000 627000
629000 629000 629000 629000 629000 629000
631000 631000 631000 631000 631000 631000
633000 633000 633000 633000 633000 633000
635000 635000 635000 635000 635000 635000
637000 637000 637000 637000 637000 637000
639000 639000 639000 639000 639000 639000
641000 641000 641000 641000 641000 641000
643000 643000 643000 643000 643000 643000
645000 645000 645000 645000 645000 645000
647000 647000 647000 647000 647000 647000
649000 649000 649000 649000 649000 649000
651000 651000 651000 651000 651000 651000
653000 653000 653000 653000 653000 653000
655000 655000 655000 655000 655000 655000
657000 657000 657000 657000 657000 657000
659000 659000 659000 659000 659000 659000];
Yin2 = [-688.38 -626.71 -568.39 -514.5 -465.64 -422.03
-688.36 -626.64 -568.28 -514.35 -465.46 -421.82
-688.32 -626.51 -568.07 -514.06 -465.1 -421.4
-688.25 -626.31 -567.74 -513.61 -464.54 -420.75
-688.2 -626.18 -567.53 -513.33 -464.19 -420.34
-688.19 -626.13 -567.45 -513.23 -464.06 -420.19
-688.14 -625.99 -567.22 -512.91 -463.67 -419.73
-688.06 -625.74 -566.82 -512.37 -463.01 -418.95
-688.01 -625.6 -566.59 -512.06 -462.61 -418.49
-688 -625.57 -566.54 -511.99 -462.53 -418.4
-687.13 -623.02 -562.4 -506.38 -455.59 -410.27
-677.94 -595.9 -518.32 -446.64 -381.64 -323.64
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3
-677.06 -593.29 -514.08 -440.89 -374.52 -315.3];
Tempin2 = [0.74399 0.734 0.71456 0.68519 0.64358 0.58546
0.7444 0.73442 0.71505 0.68578 0.64421 0.58598
0.7446 0.73456 0.71517 0.68589 0.64428 0.58594
0.74389 0.7338 0.71437 0.68505 0.64341 0.58507
0.74176 0.73172 0.71234 0.68311 0.64166 0.58365
0.73842 0.72847 0.70929 0.68033 0.63925 0.58175
0.73554 0.72561 0.70641 0.67755 0.63666 0.57929
0.73602 0.72568 0.70602 0.67671 0.63529 0.57718
0.74297 0.73128 0.7101 0.67944 0.63682 0.57729
0.75596 0.74156 0.71799 0.68532 0.6408 0.57963
0.77081 0.75286 0.72441 0.68681 0.63783 0.57257
0.77558 0.74655 0.7048 0.65198 0.58381 0.49389
0.76412 0.73625 0.69626 0.6459 0.57968 0.49109
0.7519 0.72508 0.68915 0.64346 0.58165 0.49733
0.74398 0.72001 0.68661 0.64361 0.58471 0.50343
0.7387 0.718 0.68708 0.64565 0.58851 0.50948
0.73546 0.71749 0.68821 0.64767 0.59183 0.51471
0.73255 0.71626 0.68831 0.64861 0.59397 0.51842
0.72843 0.71274 0.68603 0.64778 0.5947 0.52053
0.72166 0.7065 0.68148 0.64538 0.59429 0.52148
0.71285 0.69917 0.67631 0.64259 0.59351 0.52205];
%And the code to make the interpolation variables and run the interpolation:
[X_i,Y_i]=meshgrid([Xin2(:,1)],[-700:5:-315]);
Temp_i=griddata(Xin2,Yin2,Tempin2,X_i,Y_i);
figure,pcolor(Xin2,Yin2,Tempin2), shading flat % original data
figure,pcolor(X_i,Y_i,Temp_i),shading flat %interpolated data
前:
外挿されたデータの濃い青色の三角形 (約 (6.4e5,-325) から (6.2e5,-425) に対角線で結合する) を説明できる人はいますか?どうすればこれを止めることができますか?
注意: 両方のプロットで同じ caxis を維持するのを忘れていました。これは、不要な補間が発生する場所を示すには問題ではありません。