Matlab插值(interpn)忽略包含NaN值的维度。

3

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

我想使用interpn命令在多个维度上插值数据。

问题在于,这些数据包含NaN。因此,在某些维度中,少于2个数据点会阻止MATLAB进行插值。我希望interpn在这种情况下返回NaN值。

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

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


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

在插值时,由于一个维度中只有NaN,Matlab会给出一个错误。我希望Matlab忽略这个错误,并从 interpn 函数返回 NaN。

1个回答

0
你可以引入一个中间函数,查找 NaN。
因此,你可以调用以下函数而不是 interpn:
通过 any(any(any(isnan(val))) 查找 NaN,如果为真则返回 NaN,否则调用你的函数。
不清楚你是否想要整个 interpn 的 NaN,还是只是特定的层/维度。 如果是后者,我会很感激如果您展示更多的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接