Problem using polyfit with NaN data
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jade Pearson
el 18 de Nov. de 2020
Comentada: Jon
el 18 de Nov. de 2020
Trying to find Young's Modulus in a specific range. I was to plot the the data for that range, but when I try to get the slope value, it gives me NaN. I worked on the code for days and tried various methods and loopholes, but I can't seem to get it.
data = readtable('TITLE.txt','ReadVariableNames',true);
Load = data.Load(1:end);
Displacement = data.Displacement(1:end);
Strain = data.Strain(1:end);
Strain(Strain < 0.001) = NaN;
plot(Strain)
Strain(Strain > 0.003) = NaN;
plot(Strain)
p = plot(Strain, Load, '.', 'color','r')
title('Youngs Modulus','FontSize', 20);
xlabel('Strain (in/in)', 'FontSize', 15);
ylabel('Load(lbf)', 'FontSize', 15);
polyfit(Strain, Load, 1)
polyval(Strain, Load)
0 comentarios
Respuesta aceptada
Jon
el 18 de Nov. de 2020
Editada: Jon
el 18 de Nov. de 2020
To avoid having NaN in polyfit I would use
iFit = isfinite(Strain)
c = polyfit(Strain(iFit),Load(iFit))
% ok to have NaN when calculating fitted Load
yfit = polyval(c,Strain)
By the way shouldn't Young's Moduls use Tensile Stress (Load/Area) rather than just raw load?
5 comentarios
Jon
el 18 de Nov. de 2020
Very nice - I didn't realize you could edit the original question title. Looks very clean now!
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!