Hello, how do I display the equation for a polyfit line on this plot?
450 次查看(过去 30 天)
显示 更早的评论
if true
% code
end
p = polyfit(x,y,1);
d = polyval(p,x);
plot(x,d,'k--')
where x and y are columns of 9, averaged from 3 original sets of 9 data point columns each.
6 个评论
Steven Lord
2021-6-2
One tweak is that you can include + in the format specifier itself to avoid "+ -<number>" while displaying the sign. Look at the linear term in txt1 and txt2.
a = 2;
b = -pi;
c = exp(1);
txt1 = sprintf('y = %.4f*x^2 +%.4f*x +%.4f', a, b, c)
txt2 = sprintf('y = %.4f*x^2 %+.4f*x %+.4f', a, b, c)
采纳的回答
Image Analyst
2018-5-17
Use text() to display the equation on the graph:
grid on;
% Place equation in upper left of graph.
xl = xlim;
yl = ylim;
xt = 0.05 * (xl(2)-xl(1)) + xl(1)
yt = 0.90 * (yl(2)-yl(1)) + yl(1)
caption = sprintf('y = %f * x + %f', p(1), p(2));
text(xt, yt, caption, 'FontSize', 16, 'Color', 'r', 'FontWeight', 'bold');
11 个评论
更多回答(1 个)
the cyclist
2018-5-17
编辑:the cyclist
2018-5-17
Here is an example of how you can do this.
There are more efficient ways (e.g. using polyval on both the min and max at the same time), but I thought this might be clearer.
rng default
N = 10; x = randn(N,1); y = x + 0.3*randn(N,1);
p = polyfit(x,y,1);
x_min = min(x); x_max = max(x);
d_min = polyval(p,x_min); d_max = polyval(p,x_max);
figure hold on scatter(x,y) plot([x_min x_max],[d_min d_max],'k--')
3 个评论
the cyclist
2018-5-17
Ah, I misunderstood the question. I thought you wanted to graph the equation, and it was not working.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!