interpでNaNを出さない方法

interpnを使って3次元の内挿をしています。
一部出力結果が、NaNになるとこがあったので、調べたところ外挿の指定があることを知りました。
'spline' および 'makima' メソッドの場合、外挿値
このように記述されておりそのままやったところ、全データが外挿として出力されてしまいました。
内外挿どちらもやりたい時はどうすればいいのでしょうか?

 采纳的回答

michio
michio 2019-9-11

1 个投票

「'spline' および 'makima' メソッドの場合、外挿値」
というのはサンプル点の領域の外側では 'spline' もしくは 'makima' を使った外挿値を返すという意味ですので、サンプル点の領域の内側では内挿をしています。
「内外挿どちらもやりたい」という点についてもう少し詳しく教えて頂けませんでしょうか?

4 个评论

qrqr
qrqr 2019-9-11
ありがとうございます。
ある3次元もしくは4次元のデータがあり、基本的には内挿で処理ができるのですが、※(interpn)
まれにNaNで出力されてしまうのがありました。
出力データは10000行ほどあり、それらの積算値を求めるのでNaNがあると積算ができなく困っています。
基本的に内挿はできていて、外挿をしたいです。
simulink look up table のブレークポイントが[10,20,30]としたときに、
10<や30>の場合は外挿処理なのでMATLABコードだとどのようにやるのかと。。。
確認ですが、'spline' および 'makima' メソッドの場合は外挿も計算しますが、この場合は結果が NaN ばかりになるということでしょうか?
その他のメソッドの場合は外挿は計算せず NaN を返すので、例えば NaNをのぞいた積算(和)ができれば解決するのであれば
sum(A,'omitnan')
というオプションもあります(R2016a以降)
LookupTable の外挿法については、少しわかりにくいですが
に解説がありますので、参考まで。
qrqr
qrqr 2019-9-12
ありがとうございます。
確認ですが、'spline' および 'makima' メソッドの場合は外挿も計算しますが、この場合は結果が NaN ばかりになるということでしょうか?
NaNばかりになるわけではございません。
シンプルにやりたいこととしては
simulink look up table での外挿[線形]をしたいと思っています。
michio
michio 2019-9-16
interp1 関数であれば線形外挿も可能ですが、それ以外の interp2 や interp3 では残念ながら実現できそうにありません。申し訳ございません。
用途に合うかどうか不安ですが、 scatteredInterpolant であれば境界勾配に基づく線形外挿をサポートしています。

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 内挿 的更多信息

产品

版本

R2013b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!