MATLAB: Problem using polyfit with NaN data

boundarylimitsplotslopeyoung's modulus

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)

Best Answer

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?