Value to get back to initial

1 view (last 30 days)
Umber Sheikh
Umber Sheikh on 10 Feb 2019
Edited: Adam Danz on 11 Feb 2019
Hello!!
Shown in the image, I have a exponential decay of fluid due to dialysis. I want to stop the dialysis at 75mg/Liter (shown at the intersection at the red line and blue line) and want to see how long it takes from that point to go back up to 150mg/Liter. How can i do that?
  2 Comments
Mark Sherstan
Mark Sherstan on 10 Feb 2019
To clarify you want to find the intersection point at y = 75 and y = 150 and find the time between those two points?

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 11 Feb 2019
Edited: Adam Danz on 11 Feb 2019
This solution finds the time window that starts and ends when dialysis is at 75 and 150, respectively. I created fake data to work with. Then you can define the dialysis window. 'Duration' is the duration of the window along the x axis that starts and ends according to the dialysis window along the y axis. Lastly, a plot is produced to show the window for confirmation.
% Create fake data to work with
time = 0 : .1 : 50;
x = linspace(10.5, -2, length(time));
dialysis = exp(x/2);
% define dialysis window
window = [75, 150];
% Find closest index to the dialysis window
% Assumes 'dialysis' is a row vector. Otherwise, remove transposes.
[~, minIdx] = min(abs([dialysis', dialysis'] - window));
% Calculate time between the dialysis window
duration = time(minIdx(1)) - time(minIdx(2));
% Verify by plotting results
figure
plot(time, dialysis);
hold on
plot(time([1,1;end,end]), dialysis([minIdx; minIdx]), 'm-') %dialysis window
plot(time([minIdx; minIdx]), dialysis([minIdx', minIdx']), 'm-') %time window
title(sprintf('Fake Data; time window = %.2f', duration))

More Answers (0)

Categories

Find more on Fluid Dynamics in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!