Fitting a plot with interpolation

8 views (last 30 days)
HC98
HC98 on 16 Jun 2021
Commented: laurent jalabert on 17 Jun 2022
I need to interpolate some data involving a logarithm using the fit function but I'm not sure how to interpolate in matlab. Generally speaking, how does one interpolate data in MATLAB?

Answers (1)

Walter Roberson
Walter Roberson on 16 Jun 2021
interp1() for 1D cases, interp2() for 2D cases
However, it does not sound to be as if you want to use either. It looks to me as if you want to use the Curve Fitting Toolbox fittype() and fit() functions. Then you want to evaluate the fitted model at a particular location, which you can do by using the returned fit object as if it were a function.
F = fittype('poly2')
F =
Linear model Poly2: F(p1,p2,p3,x) = p1*x^2 + p2*x + p3
p = fit((1:5).', rand(5,1), F)
p =
Linear model Poly2: p(x) = p1*x^2 + p2*x + p3 Coefficients (with 95% confidence bounds): p1 = -0.01913 (-0.5426, 0.5044) p2 = 0.05751 (-3.144, 3.259) p3 = 0.4766 (-3.725, 4.678)
p(7)
ans = -0.0583
Except that you would be constructing a different fittype() object, and using real data instead of the fake data I used here.
  4 Comments
laurent jalabert
laurent jalabert on 17 Jun 2022
how can I write the syntax of a nonlinear regression fitting model involving an interp1 that contains a fitting parameter ?
table_theory is a table of X and Y vector (length ~ 300)
table_exper is a table of x and y experimental data (length ~50)
RP = interp1(table_theory,500)
modelR = @(x )beta * RP(alpha * x)
alpha and beta the fitting parameters
h_mdl = fitnlm(table_exper,modelR,beta,'CoefficientNames',{'apha';'beta'});
I would like to take table_exper, then find the best coefficient alpha (on x-axis) and beta (on y-axis) so that the resulting y=beta * RP(alpha * x) will be the closest to the table_theory.

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!