Extract linear region of data (stress-strain data)

6 views (last 30 days)
Hi all. I have experience in about 1 class with Matlab but I'm stumped right now. I know I could do this manually, but I'm trying to practice with Matlab.
My problem is that stress-strain data is usually approximately linear up to a point, then it becomes non-linear. Is there a way to "extract" the linear portion of data and put it in a matrix?
Here's some example data:
clear; clc; close all;
A= [0 0
331 0.156
669 0.315
1022 0.493
1140 0.554
1175 0.581
1167 0.776
1177 1.294
1193 2.16
1207 2.98
1217 3.85
1221 4.77
1200 6.02
1129 7.51
1045 9.03
944 10.60
829 12.00];
stress = A(:,1);
strain = A(:,2)/100;
plot(strain,stress)
I was thinking about trying to do something like "find the first place where the gradient switches from positive to negative"... but my real-world data isn't strictly increasing since there's errors in measurements.
I almost feel like I'm thinking too hard about it and there might be a completely different way that's more efficient...
Anyone have an idea?

Answers (0)

Categories

Find more on Stress and Strain in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!