I want to show r^2 and the poly1 ec on the plot
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Giulia Di Giorgio
el 5 de Mzo. de 2023
Comentada: Giulia Di Giorgio
el 5 de Mzo. de 2023
Hello, I made a poly1 ecuation with 2 column vector but I dont know how to show on the plot the R^2 value and the ecuation. I tried the text command but it's giving me an error with the () and [], help me please
h=[10;20;30;40];t1=[51.91;106.49;166.07;227.87]; t2=[51.91;54.58;59.58;61.80];
V=(pi*(dtr/2)^2.*h)/1000; %L
Q1=V./t1; Q2=V./t2; %L/s
f1=fit(t1,Q1,'poly1');
m1=f1.p1; b1=f1.p2;
fit1=m1.*t1+b1;
f2=fit(t2,Q2,'poly1');
m2=f2.p1; b2=f2.p2;
fit2=m2.*t2+b2;
subplot(2,2,1);
plot(t1,Q1,'mo',t1,fit1,'b-');
xlim([0 250]);
ylim([0.15 0.2]);
title('Caudal vs tiempos totales');
ylabel('Q (L/s)');
xlabel('t(s)');
legend('datos','ajuste',"location","best");
text(0,0.15,['R²='num2str(R_squared)])
3 comentarios
John D'Errico
el 5 de Mzo. de 2023
Now that I can read what you wrote, where do you define the variable R_squared?
Is that intended to be one of the R^2 coefficients from one of the two polynomial fits you did?
Respuesta aceptada
Torsten
el 5 de Mzo. de 2023
format short g
%datos del equipo
df=6.1; %cm
hf=25; %cm
dtr=35; %cm
htr=62; %cm
%datos del usuario
V1=60; V2=0; Vr=V1-V2; %volumen de susp filtrado (L)
m1=0.1; %kg
mr=(Vr*m1)/V1; %masa real filtrada
ma=1.912; md=1.980; %pesos antes y despues de filtrar del cartucho+filtro+agua (Kg)
P=3; %psi
h=[10;20;30;40];t1=[51.91;106.49;166.07;227.87]; t2=[51.91;54.58;59.58;61.80]; %vectores altura (cm) y tiempos totales y parciales (s)
%GRAFICA Q vs t
V=(pi*(dtr/2)^2.*h)/1000; %L
Q1=V./t1; Q2=V./t2; %L/s
[f1,R]=fit(t1,Q1,'poly1');
R_squared_char = num2str(R.rsquare);
m1=f1.p1; b1=f1.p2;
fit1=m1.*t1+b1;
f2=fit(t2,Q2,'poly1');
m2=f2.p1; b2=f2.p2;
fit2=m2.*t2+b2;
subplot(2,2,1);
plot(t1,Q1,'mo',t1,fit1,'b-');
xlim([0 250]);
ylim([0.15 0.2]);
title('Caudal vs tiempos totales');
ylabel('Q (L/s)');
xlabel('t(s)');
legend('datos','ajuste',"location","best");
text(10,0.155,strcat('R²= ',R_squared_char))
subplot(2,2,2);
plot(t2,Q2,'mo',t2,fit2,'b-');
xlim([50 65]);
ylim([0.1 0.7]);
title('Caudal vs tiempos parciales');
ylabel('Q (L/s)');
xlabel('t(s)');
legend('datos','ajuste',"location","best");
Más respuestas (1)
John D'Errico
el 5 de Mzo. de 2023
Editada: John D'Errico
el 5 de Mzo. de 2023
Read the help for fit! Look at the second argument it can return. You don't give me enough information (what is dtr, for example?) to actually run your code, so I'll just make up some data.
x = rand(10,1);
y = rand(10,1); % random data, so R^2 should be randomly near 0.
[f1,goodness]=fit(x,y,'poly1');
goodness
Do you see that goodness has a field named rsquare? That is the R^2 coefficient you want.
goodness.rsquare
3 comentarios
John D'Errico
el 5 de Mzo. de 2023
I explained what you are missing in my answer. The variable R_squared does not just appear like magic. It will not be defined just because you want it to exist.
You need to create it. In this case, you can create it from the second return argument from fit.
[f1,goodness] = fit(t1,Q1,'poly1');
R_squared = goodness.rsquare;
Having done that, NOW you can use the value. But not until.
Ver también
Categorías
Más información sobre Axis Labels en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!