MATLAB Answers

qrqr
0

多次元の外挿について

Asked by qrqr
on 8 Oct 2019
Latest activity Edited by Yoshio
on 14 Oct 2019
3次元や4次元の外挿は無いのでしょうか?
以前、別の質問で1次元しか外挿ができないと回答があったのですが、
多次元外挿はMATLABには機能が無いのでしょうか?
simulinkのLookuptableと同じ機能をMATLABコードにしたいのですが、外挿で悩んでます。

  1 Comment

Yoshio
on 11 Oct 2019
右上のタブで外挿を選んでみてください。
  • 'spline' および 'makima' メソッドの場合
であって、線形以外の多次元外挿ができない、のではありませんのでご確認ください。
なお、Simulinkの外挿法の説明およびルックアップテーブルの説明にありますようにLookuptable利用の外挿としては線形と3次スプラインですので、3次スプラインをご利用になれば、同じ機能をMATLABコードにできます。

Sign in to comment.

Products


Release

R2013b

1 Answer

Yoshio
Answer by Yoshio
on 11 Oct 2019
Edited by Yoshio
on 11 Oct 2019
 Accepted Answer

上にかぶりますが、こちらに記載されている
griddedInterpolant では、1 次元、2 次元、3 次元、N 次元のグリッドデータセットに対する内挿および外挿
  • 外挿法は、'linear''nearest''next''previous''pchip''cubic''spline' または 'makima'
scatteredInterpolant  では、散布データの 2 次元または 3 次元データセットの内挿および外挿
  • 外挿法は、'nearest''linear'
ができます。

  5 Comments

qrqr
on 14 Oct 2019
①interpn(A,B,C,D,data_set,1,2,3,1) → 1
②interpn(A,B,C,D,data_set,1,2,3,2) → 11
③interpn(A,B,C,D,data_set,1,2,3,1.5) → 6
このように③は内挿で6と答えが出ますが、
④interpn(A,B,C,D,data_set,1,2,3,3)とするとこのままではNaNになります。
④の時に外挿値を出したいです。
Yoshio
on 14 Oct 2019
繰り替えしになりますがinterpnの説明にありますように
Vq = interpn(___,method,extrapval) は、サンプル点の領域の外側に位置するすべてのクエリに割り当てられたスカラー値 extrapvalも指定します。
サンプル点の領域の外側でクエリの extrapval 引数を省略すると、method 引数に基づき、interpn は次のいずれかを返します。
  • 'spline' および 'makima' メソッドの場合、外挿値
  • その他の内挿法の場合、NaN
methodを'spline' または 'makima' に指定しないとNaNになりますから、指定すると
interpn(A,B,C,D,data_set,1,2,3,3,'spline')
interpn(A,B,C,D,data_set,1,2,3,3,'makima')
どちらも21となります。
Yoshio
on 14 Oct 2019
もしどうしても、'linear' ということでしたら、以下のようにすればよいと思います。なお、'spline'、'makima'でも同じ値になります。
%% 'linear'
F = griddedInterpolant({A,B,C,D},data_set,'linear');
F(1,2,3,1)
F(1,2,3,2)
F(1,2,3,1.5)
F(1,2,3,3)
%% 'spline'
F = griddedInterpolant({A,B,C,D},data_set,'spline');
F(1,2,3,1)
F(1,2,3,2)
F(1,2,3,1.5)
F(1,2,3,3)
%% 'makima'
F = griddedInterpolant({A,B,C,D},data_set,'makima');
F(1,2,3,1)
F(1,2,3,2)
F(1,2,3,1.5)
F(1,2,3,3)
なお、今後のお願いになりますが、以下ご理解の上ご質問ください。
MATLAB Answers:
オープンなユーザーコミュニティーで、ユーザー同士の助け合いの場です。
世界中の数多くのMATLABユーザーである研究者やエンジニアから“MATLABの使い方”を超えた専門的な参考意見をもらえる可能性もあります。MathWorks社員(STAFFマーク付きのアカウント)も1ユーザーとして回答していますが、 STAFFへの個別メッセージによるご質問には原則お答えできませんので、ご了承ください。
なかなか回答が付かないという場合にはこちらも参考にしてみてください。

Sign in to comment.