I cannot use interp2 function instead of griddata

3 ビュー (過去 30 日間)
Serhat Sarihan
Serhat Sarihan 2024 年 12 月 6 日
コメント済み: Matt J 2024 年 12 月 8 日
I have a dynamic model as a MATLAB script that uses griddata function for interpolation. When I tried to implement the same model in Simulink, the only way I could use griddata was by using Matlab Function Block with coder.extrinsic('griddata') command inside. After that the Simulink model was working fine but when I tried generate a code from that model it was not possible due to griddata does not have the C/C++ Code Generation Capability. After some research, I figured out that I could use interp2 function as an alternative which has the extended capability of C/C++ Code Generation. However, when I tried to use it I got an error says; 'Grid arrays must have NDGRID structure.'
Here, a sample data extracted from my dynamic model is given with griddata and interp2 functions.
clear, clc;
% sample data
x = [1.1390, 1.1069, 1.0868;
0.6763, 0.5188, 0.2399;
0.8110, 0.1311, -0.5368;
1.2953, 0.7618, 0.3221;
1.1390, 1.1069, 1.0868];
y = [0, 0, 0;
0.1640, 0.4879, 0.8118;
0.0000, 0.0000, 0.0000;
-0.1640, -0.4879, -0.8118;
-0.0000, -0.0000, -0.0000];
v = [0, 0, 0;
0.1352, 0.2279, 0.6906;
0.0417, 0, 0.5807;
0, 0.1010, 0.4709;
0, 0, 0];
xq = [0.2000, 0.5950, 0.9900;
0.0000, 0.0000, 0.0000;
-0.2000, -0.5950, -0.9900;
-0.0000, -0.0000, -0.0000;
0.2000, 0.5950, 0.9900];
yq = [0, 0, 0;
0.2000, 0.5950, 0.9900;
0.0000, 0.0000, 0.0000;
-0.2000, -0.5950, -0.9900;
-0.0000, -0.0000, -0.0000];
% griddata function
vq = griddata(x,y,v,xq,yq,'cubic');
% interp2 function
Vq = interp2(x,y,v,xq,yq,'cubic');
I would like to get the same result using either interp2 function or any other function that has the C/C++ Code Generation Capability. Then I would be able to use it for code generation.
  3 件のコメント
Stephen23
Stephen23 2024 年 12 月 6 日
編集済み: Stephen23 2024 年 12 月 6 日
"I cannot use interp2 function instead of griddata"
Correct: your data are not gridded, therefore you cannot use INTERP2.
Serhat Sarihan
Serhat Sarihan 2024 年 12 月 6 日
Thank you for your responses. I will try to solve this issue by the help of those links you've shared.
Note: The code I shared is a dummy script for generating data to a sample point of my dynamic model. The original code is old and written by another person. I was trying to make use of it to create a dynamic model and made some modifications to it for that purpose. This was the part I did not understand.

サインインしてコメントする。

回答 (1 件)

Matt J
Matt J 2024 年 12 月 7 日
scatteredInterpolant is supported for Code Generation as of R2024b, so if you can upgrade from R2019b, that might sove it.
  2 件のコメント
Serhat Sarihan
Serhat Sarihan 2024 年 12 月 7 日
Thank you for this advise Matt.
After making some adjustments on my model to use scatteredInterpolant properly I should upgrade my Matlab version as you suggest.
Matt J
Matt J 2024 年 12 月 8 日
You're welcome, but if this resolves your question please Accept-click the answer.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeArray and Matrix Mathematics についてさらに検索

製品


リリース

R2019b

Translated by