在 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。
你基本上需要一半的内存
我在二维插值方面遇到了麻烦,希望有人能帮助我! 所以我在一条线的 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。 你基本上需要一半的内存