可能重复:
MATLAB: Using interpolation to replace missing values (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
Matlab在插值时给出错误,因为在一维中存在内部NaN。我希望matlab忽略这个错误,而是返回NaN的形式为interpn函数。
答案 0 :(得分:0)
您可以引入寻找NaN的中间函数。
因此,您可以调用执行以下操作的函数,而不是调用interpn:
如果true返回NaN,则通过any(any(any(isnan(val)))
搜索NaN,否则它会调用您的函数。
目前尚不清楚是否需要整个interpn
的NaN,或仅针对特定的图层/维度。如果是后者,如果您展示更多代码,我会很感激。