3

可能重复:
MATLAB:使用插值替换缺失值(NaN)

我想使用 interpn 命令插入多个维度的数据。

问题是数据包含 NaN。因此,在某些维度上,阻止 matlab 插值的数据点少于 2 个。在这种情况下,我希望 interpn 返回一个 NaN 值。

示例:我的数据看起来有点像这样

  val(:,:,1) =
    -2.3810   -0.9365
     NaN   -0.6910


  val(:,:,2) =
    -2.3354   -0.9271
    NaN   -0.6859

Matlab 在插值时会出错,因为一维中只有 NaN。我希望 matlab 忽略此错误,而是从 interpn 函数返回 NaN。

4

1 回答 1

0

您可以引入寻找 NaN 的中间函数。

因此,您可以调用执行以下操作的函数,而不是调用 interpn:

如果 true 返回 NaN,则通过搜索any(any(any(isnan(val)))NaN,否则它会调用您的函数。

目前尚不清楚您是否需要整个 的 NaNinterpn或仅用于特定的层/维度。如果是后者,如果您显示更多代码,我将不胜感激。

于 2012-09-17T12:58:33.830 回答