Finding values from Cubicinterp fit
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jason
el 13 de En. de 2017
Comentada: Jason
el 14 de En. de 2017
If I have performed a cubic interp to some data,
x = linspace(1,maxFwhm+1,maxFwhm+1)'
f=fit(x,y,'cubicinterp')
hold on
plot(f,'k--')
coeffvalues(f)

How can I now calculate the x value that corresponds with the y value of 0.5?
Thanks Jason
0 comentarios
Respuesta aceptada
Steven Lord
el 13 de En. de 2017
load census
populationFit = fit(cdate, pop, 'poly2');
populationIn1925 = populationFit(1925)
You can check that it evaluated the fit correctly.
plot(cdate, pop)
hold on
plot(populationFit)
plot(repmat(1925, 1, 2), ylim)
plot(xlim, repmat(populationIn1925, 1, 2))
plot(1925, populationIn1925, 'o')
3 comentarios
Steven Lord
el 13 de En. de 2017
You need to make sure you evaluate the fit for a specific value that fzero will pass into your function.
fun = @(x) f(x)-0.5;
Más respuestas (1)
John D'Errico
el 13 de En. de 2017
Editada: John D'Errico
el 13 de En. de 2017
Download my SLM Toolbox . Since I don't have your data, I'll make some up. Not a very creative function, I know, but it will suffice.
Here, for which values of x does the function equal 0.5?
x = (0:5)';
y = rand(size(x));
y = rand(size(x))
y =
0.79221
0.95949
0.65574
0.035712
0.84913
0.93399
f=fit(x,y,'cubicinterp');
slmsolve(f.p,0.5)
ans =
2.1967 3.671
The results are as good as can be had (using the function roots), not an approximation.
Ver también
Categorías
Más información sobre Time Series en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!