How to use interpolate struct data in simulink?

2 次查看(过去 30 天)
I have a struct data file in .mat format.
I can use interp2 to interpolate the data from this struct data file in matlab.
for example,
h = interp2(data.P,data.T,data.H,234e+05,317)
How to do similiar like this in simulink?

采纳的回答

Fangjun Jiang
Fangjun Jiang 2023-2-16
编辑:Fangjun Jiang 2023-2-16
In general, in Simulink, the "2-D Lookup Table" block can be used to do what interp2() does in MATLAB.
You need to figure out the proper size for the input arguments though. Your example certainly has problem due to un-matched size.
data.P=1:4;
data.T=1:3;
data.H=rand(3,4);
h = interp2(data.P,data.T,data.H,1.5,2.5)
h = 0.2963
data.P=rand(3,4);
data.T=rand(3,4);
h = interp2(data.P,data.T,data.H,0.5,0.5)
Error using griddedInterpolant
Grid arrays must have NDGRID structure.

Error in interp2>makegriddedinterp (line 226)
F = griddedInterpolant(varargin{:});

Error in interp2 (line 134)
F = makegriddedinterp(X, Y, V, method,extrap);
  2 个评论
Anup
Anup 2023-2-17
编辑:Anup 2023-2-17
I only need P, T, H and all the other values can be excluded. Don't these three variables have same size. If we were to consider only these three variables, could you kindly explain to me how we can perform interpretation using a lookup table? Thank you very much for your help.
I have attached the .mat file (reduced file size).
Fangjun Jiang
Fangjun Jiang 2023-2-17
My example should already explain it. If you want to run
h = interp2(data.P,data.T,data.H,234e+05,317), H is 301x400, then P needs to be 1x400 and T needs to be 1x301. See doc interp2

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Event Functions 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by