【问题标题】:Matlab interpolate (interpn) ignore dimensions with NaN [duplicate]Matlab插值(interpn)忽略NaN的尺寸[重复]
【发布时间】:2012-09-09 13:29:42
【问题描述】:

可能重复:
MATLAB: Using interpolation to replace missing values (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。

【问题讨论】:

    标签: matlab nan boundary interpolation


    【解决方案1】:

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

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

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

    尚不清楚您是希望整个interpn 使用 NaN,还是仅用于特定层/维度。如果是后者,如果您显示更多代码,我将不胜感激。

    【讨论】:

      猜你喜欢
      • 2016-03-28
      • 2011-09-24
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2016-06-03
      • 2021-12-31
      • 2013-07-17
      相关资源
      最近更新 更多