在 x 和 z matlab 上插值垂直剖面

Interpolate vertical profiles on x and z matlab

我在二维插值方面遇到了麻烦,希望有人能帮助我! 所以我在一条线的 35 个不均匀距离点(LON,LAT)上有各种变量的垂直剖面。例如,在点 1 (LON1,LAT1),温度的垂直分布一直存在到 3000 米的深度(每米的值)。同样代表所有的点,它给我一个 3000 x 35 的温度矩阵和一些 nans,因为不是所有的配置文件都扩展到 3000。为了简化问题,我将 (LON,LAT) 转换为距离并将第一个点设置为零我最终得到了以千米为单位的 35 个距离点的数组。

0   13.5249503652868    26.9047913191185    40.2043227556737
53.5953927068063    68.7246541157708    83.7206504065805    
97.5329665289129    113.608485218156    128.552410860790    
143.601266260157    158.929110574795    174.278260638739    
190.336392346001    205.931557129132    221.494121174778      
237.794806612557    252.414908786647    295.134701527471    
351.170490753821    384.473960193564    417.021164159912    
449.490674248662    494.362302821843    539.125735599804    
563.275845776792    572.605248034065    581.877760791985    
591.155182195857    600.456986025726    609.789467543194    
619.084692254915    629.933920289878    640.788063270672    
644.719823183569

现在我想在网格中插入垂直剖面,例如水平方向每 3 公里,垂直方向每 10 米。 新网格:[Xgrid Ygrid]=meshgrid(0:3:644.719823183569, 5:10:3000); , size:300x215

因此我使用

temp_int=griddata(distance,depth,temp,...Xgrid,Ygrid,'v4'); 

where distance=1x35, depth=3000x1 and temp as mentioned above 3000x35.

这给我以下错误:

run out of memory

非常感谢对上述问题或替代解决方案的任何帮助:)

您可以尝试使用 scatteredInterpolant,记忆力可能更好

另一个想法可能是缩减数据,将数据转换为 single。 你基本上需要一半的内存