Value to get back to initial

3 ビュー (過去 30 日間)
Umber Sheikh
Umber Sheikh 2019 年 2 月 10 日
編集済み: Adam Danz 2019 年 2 月 11 日
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 件のコメント
Mark Sherstan
Mark Sherstan 2019 年 2 月 10 日
To clarify you want to find the intersection point at y = 75 and y = 150 and find the time between those two points?
Umber Sheikh
Umber Sheikh 2019 年 2 月 10 日
yes

サインインしてコメントする。

採用された回答

Adam Danz
Adam Danz 2019 年 2 月 11 日
編集済み: Adam Danz 2019 年 2 月 11 日
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))

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by