2D LUT (extrapolation) Simulink vs interp2

5 次查看(过去 30 天)
Hi,
I am trying to "converts" a Simulink model into a matlab script/function, but I stumbled upon the 2D Look Up table conversion.
The interp2 works fine if input values lies inside the table (interpolation). However when the one/more input values lie outside the look-up table, interp2 per default returns NaN. The NaN can be substituted by any scalar number. The 2D-LUT block needs to be converted is set to do linear extrapolation when the input values fall outside the table.
Is there any default function to do 2D-linear-extrapolation in Matlab? preferably with same working principle as in 2D-LUT block in Simulink?
  1 个评论
Ilham Hardy
Ilham Hardy 2015-4-15
Another angle:
Is there anyway to retrace the calculation done by 2D-lookup table in Simulink? Does 2D-LUT block calls specific Matlab function?

请先登录,再进行评论。

回答(1 个)

Sebastian Castro
Sebastian Castro 2015-4-15
Looks like interp2 is designed to return NaNs by default unless your interpolation method is 'spline' .
You can change this by include the last 'scalar' argument after the interpolation method. For example,
Vq = interp2(V,Xq,Yq,'linear','scalar')
- Sebastian
  3 个评论
Sebastian Castro
Sebastian Castro 2015-4-16
编辑:Sebastian Castro 2015-4-16
Whoops! Didn't notice that part -- that it's a single scalar value.
What about griddedInterpolant? That one definitely has various extrapolation methods.
There are two examples at the end of the above page for 2-D interpolation and 1-D extrapolation.
- Sebastian
Thushara De Silva
Is there an accepted answer for this question? I also have the same problem of extrapolating, however, I couldn't find the solution from those pages.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Programmatic Model Editing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by