8
\ begingroup美元

我需要网格温度数据集从1度到0.5度。如果我们有一个正方形中所有网格的数据可用,如下所示,我们可以简单地在MATLAB中使用双线性/双三次插值方法对其进行网格划分。

在这里输入图像描述

但是,我有一个不规则形状的数据网格,即没有值超出给定的网格如下所示。

在这里输入图像描述

这种情况下如何重骑?

\ endgroup美元
5
  • 1
    \ begingroup美元 恐怕这要看应用程序而定。你所使用的插值和外推以及边界所代表的内容。你的模型中是否包含细胞的热流,或者它是一个封闭系统? \ endgroup美元
    - - - - - -user2821
    2015年8月16日22:33
  • \ begingroup美元 我在试着调节温度。边界代表州或县。没有通量。 \ endgroup美元
    - - - - - -dsbisht
    2015年8月17日7点09分
  • \ begingroup美元 我怀疑你的一般方法应该是找到原始点的凹壳,然后做任何形式的插值(前提是忽略缺失值,而不是将它们视为零),然后使用凹壳作为掩码来删除不需要的点。棘手的部分是凹壳,我不知道在Matlab中怎么做,这就是为什么我不把这个作为答案。 \ endgroup美元
    - - - - - -半日西蒙
    2015年8月17日15:36
  • \ begingroup美元 我已经有一段时间没有这样做了,但我相信毕业生项目非常好,有各种各样的考虑……你可以使用遮罩来防止溢出到你不想要的地方。 \ endgroup美元
    - - - - - -JeopardyTempest
    2017年3月12日21:18
  • \ begingroup美元 除了Matlab,你还会考虑其他工具吗?我知道如何在R中做这个,有一个函数允许插值到不规则网格中。 \ endgroup美元
    - - - - - -怪不得我
    2017年3月13日14:48

2答案2

1
\ begingroup美元

试试这样做:

[x_grid,y_grid] = meshgrid(1:100,1:100);z_grid = griddata (x_data y_data、z_data x_grid (:), y_grid (:), v4);

如果你喜欢其他方法,你可以改变插补方法。

看到的:http://www.mathworks.com/help/matlab/ref/griddata.html

\ endgroup美元
    1
    \ begingroup美元

    你试过修补方法吗?修补方法试图用现有的数据来替换缺失的数据。我建议您检查inpaint_nan。文件交换中的M函数。

    例如

    [x,y] = meshgrid(0:.01:1);Z0 = exp(x+y);Znan = z0;znan(20:50,40:70) = NaN;znan(30:90,5:10) = NaN;znan(70:75,40:90) = NaN;Z = inpaint_nans(znan);图,imagesc(znan),轴图像图,imagesc(z),轴图像

    在这里输入图像描述

    在这里输入图像描述

    \ endgroup美元

      你的答案

      点击“张贴您的答案”,即表示您同意我们的服务条款隐私政策而且饼干的政策

      这不是你想要的答案?浏览带标签的其他问题问自己的问题