Effacer les filtres
Effacer les filtres

How to display fit equation on plot?

44 vues (au cours des 30 derniers jours)
Christopher
Christopher le 17 Nov 2013
Modifié(e) : VBBV le 28 Oct 2021
Hello all,
I have written code that creates a power fit to some data. The code is :
p=polyfit(log(pla_strain),log(pla_stress),1);
m=p(1);
b=exp(p(2));
yy=b.*(pla_strain).^m;
I think plot the data with the fit as follows:
loglog(pla_strain,pla_stress,'LineWidth',4)
hold on
plot(pla_strain,yy,'r--','LineWidth',2)
axis([.001 .1 40 100])
hold off
My problem is I am trying to display the equation of the fit on the plot. The equation is of the form y=b*x^m where b and m are the two coefficients from the polyfit. I would like to display this equation in the same location of the plot every time, which would ideally be towards the top center.
Thanks

Réponses (4)

G A
G A le 18 Nov 2013
txt1='b*x^m';
yL=get(gca,'YLim');
xL=get(gca,'XLim');
text((xL(1)+xL(2))/2,yL(2),txt1,...
'HorizontalAlignment','left',...
'VerticalAlignment','top',...
'BackgroundColor',[1 1 1],...
'FontSize',12);

Image Analyst
Image Analyst le 18 Nov 2013
You're going to have to convert the x and yy back into pla_strain and pla_stress so you can plot them
x = log(pla_strain);
pla_strain_fitted = exp(x);
yy = m .* x + b; % This equals log(pla_stress)
pla_stress_fitted = exp(yy);
loglog(pla_strain_fitted, pla_stress_fitted, 'LineWidth',4)

GILBERT ALVIOLA
GILBERT ALVIOLA le 24 Juil 2017
Something like this... where x and y specifies the position
txt1 = ['y = (' num2str(m) ')x + (' num2str(a) ')']; text(x, y, txt1);

VBBV
VBBV le 28 Oct 2021
Modifié(e) : VBBV le 28 Oct 2021
stress = [0;0.0464;0.1940;0.4962;0.5040;0.5566;0.6040;0.6260;0.6240;0.6100;0.5880;0.5720]; % e.g values
strain = [0;0.2220;0.3600;0.4980;0.5040;0.8820;2.6640;4.4400;5.9100;6.7380;7.1460;7.2900]; % e.g values
dstrain = gradient(2*strain);
dstress = gradient(2*stress);
estress = stress.*(1+strain)
estress = 12×1
0 0.0567 0.2638 0.7433 0.7580 1.0475 2.2131 3.4054 4.3118 4.7202
estrain = log(1+strain);
p=polyfit(log(dstrain),log(dstress),1);
m=abs(p(1));
b=(((abs(p(2)))));
yy=b.*(strain).^m;
plot(strain,stress,'LineWidth',1.5)
hold on
plot(strain,yy,'r--','LineWidth',2)
hold on
plot(estrain,estress,'-k','linewidth',1.5)
legend('engg stress-strain','exponetial curve fit','true stress-strain')
% axis([.001 .1 40 100])

Catégories

En savoir plus sur Scatter Plots dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by