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コードだとどのようにやるのかと。。。
michio
michio 2019 年 9 月 11 日
確認ですが、'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

質問済み:

2019 年 9 月 11 日

コメント済み:

2019 年 9 月 16 日

Community Treasure Hunt

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

Start Hunting!