Displaying fit function on the plot
19 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a fit function which is displayed below. There is a plot with this fitted function. Are there anyway that I can display the "f(x) = -0,02462x^2 - 8.336x -747.7" on the plot?
If someone know how to do it, pls help me.
0 个评论
回答(1 个)
Steven Lord
2023-4-13
We can use some of the methods of the object returned by fit to get the pieces we need to display it.
x = (1:10).';
y = x.^2 + 2*x - 3 + randn(size(x));
P = fit(x, y, 'poly2')
The formula method gives us the expression for the fit with the coefficient names.
F = formula(P)
The coeffnames method gives us the coefficient names and the coeffvalues method the coefficient values.
N = coeffnames(P);
V = coeffvalues(P);
Now we can use string operations to replace the coefficient names with the coefficient values (converted to strings.)
formulaWithValues = replace(F, string(N).', string(V))
That + followed by a - for the constant term is a little awkward looking. Let's fix that.
formulaWithValues = replace(formulaWithValues, "+ -", "- ")
Now we could use formulaWithValues to add a legend entry for the fitted curve (or with the text function to put it in the axes itself.)
plot(x, y, 'o', DisplayName = 'raw data')
hold on
xx = 1:0.25:10;
plot(xx, P(xx), DisplayName = formulaWithValues)
legend show
This gets a little more complicated if your fit has problem-dependent parameters, but it wouldn't be that difficult to use probnames and probvalues in addition to coeffnames and coeffvalues.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!