Area under the curve with conditions?

3 views (last 30 days)
I want to do following tasks,
First generate a time series load data between 550-1000 for one day 30 min interval, so is load(48*1) dataset
then set level_1 = 750 and draw a line on the graph,
then find out the area above this level_1 line and area under seprate level (lets say level_2 = 600) line seprately

Accepted Answer

Star Strider
Star Strider on 8 Aug 2019
Try this:
t = 1:48; % Time Vector
load = randi(1000, 1, 48); % Create Data
level_1 = 750;
level_2 = 600;
above_level_1 = load >= level_1; % Logical Index Vector
area_1 = trapz(t(above_level_1), load(above_level_1)); % Area Under ‘Level_1’
below_level_2 = load <= level_2; % Logical Index Vector
area_2 = trapz(t(below_level_2), load(below_level_2)); % Area Under ‘Level_2’
figure
plot(t, load)
hold on
plot(xlim, [1 1]*level_1)
plot(xlim, [1 1]*level_2)
hold off
grid
  10 Comments
MUKESH KUMAR
MUKESH KUMAR on 5 Jan 2021
Can i get the area with these conditons at each continous interval.
The problem is that when above_level_1 having only one continuous data(1) then it can not calculate area but it should calculate for that interval at that point.??
Star Strider
Star Strider on 5 Jan 2021
I do not understand what you are asking.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!