2 views (last 30 days)

Show older comments

Scott MacKenzie
on 3 Aug 2021

Edited: Scott MacKenzie
on 3 Aug 2021

f = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/702117/Steel6150Tens.csv';

T = readtable(f);

T(end,:) = []; % remove last row, outlier

x = T.Strain;

y = T.Stress;

plot(x,y)

% compute area the hard way

a0 = 0;

for i=2:length(x)

a0 = a0 + (x(i)-x(i-1)) * (y(i)+y(i-1))/2;

end

fprintf('Area: %f\n', a0);

% verify result using trapz

a1 = trapz(x, y);

fprintf('Area using trapz: %f\n', a1);

Wan Ji
on 10 Aug 2021

By using 'type trapz' command, one can see the vectorized trapz method, the code is simplified as:

z = diff(x,1,1).' * (y(1:end-1,:) + y(2:end,:))/2;

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

Start Hunting!