Interpolation of function of 3 variables

4 ビュー (過去 30 日間)
PASUNURU SAI VINEETH
PASUNURU SAI VINEETH 2022 年 1 月 29 日
コメント済み: _ 2022 年 1 月 29 日
I have 4 variables in the problem where the last variable is the function of first three. The attached excel sheet contains the sample data. The following code throws an error when I try to interpolate. Please help me figure out the issue.
SideForceData = readmatrix("Swing_Digitization.xlsx");
SeamAngle_data=SideForceData(:,1);
spin_data=SideForceData(:,2);
vel_data=SideForceData(:,3);
Fswing_data=SideForceData(:,4);
spin=10;
vel=40;
SeamAngle=25;
Fswing = interp3(SeamAngle_data, spin_data, vel_data, Fswing_data, SeamAngle, spin, vel);
Error using griddedInterpolant
Interpolation requires at least two sample points for each grid dimension.

Error in interp3 (line 132)
F = griddedInterpolant({X, Y, Z}, V, method,extrap);

採用された回答

_
_ 2022 年 1 月 29 日
It looks like the data in that file is insufficient for making a gridded interpolant (because there is no information about Seam Angle = 30, Spin Rate = 11.4, 14.2), so you have to use a scattered interpolant instead:
SideForceData = readmatrix("Swing_Digitization.xlsx");
SeamAngle_data=SideForceData(:,1);
spin_data=SideForceData(:,2);
vel_data=SideForceData(:,3);
Fswing_data=SideForceData(:,4);
spin=10;
vel=40;
SeamAngle=25;
% Fswing = interp3(SeamAngle_data, spin_data, vel_data, Fswing_data, SeamAngle, spin, vel);
I = scatteredInterpolant(SeamAngle_data, spin_data, vel_data, Fswing_data);
Fswing = I(SeamAngle,spin,vel);
disp(Fswing);
0.2410
  2 件のコメント
_
_ 2022 年 1 月 29 日
Yes, I believe they should be the same in that case. For more than three variables, look into griddatan().

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

その他の回答 (0 件)

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by