how to plot a function

How can I plot this function below?
function [ content ] = caffeine( time, caffeineContent, durationBetween )
halfLife = 5.7;
tau = halfLife/log(2);
n = floor(time/durationBetween);
content = caffeineContent * exp(-time/tau) * (1-exp(durationBetween * (n+1)/tau))/(1-exp(durationBetween/tau));
end

Respuestas (2)

Rik
Rik el 20 de Abr. de 2021
Editada: Rik el 20 de Abr. de 2021
The same as any other function: find a vector of x data and calculate the y data. Then you can use plot. You can use plot3 for xyz data.
Edit:
time=linspace(0,60,200);
caffeineContent=0.5;
durationBetween=1;
content=zeros(size(time));
for n=1:numel(time)
content(n) = caffeine( time(n), caffeineContent, durationBetween );
end
plot(time,content)
function content = caffeine( time, caffeineContent, durationBetween )
halfLife = 5.7;
tau = halfLife/log(2);
n = floor(time/durationBetween);
content = caffeineContent * exp(-time/tau) * (1-exp(durationBetween * (n+1)/tau))/(1-exp(durationBetween/tau));
end

2 comentarios

Ali Salem
Ali Salem el 20 de Abr. de 2021
can you show me what that would look like?
Johannes Hougaard
Johannes Hougaard el 20 de Abr. de 2021
It is shown in the answer

Iniciar sesión para comentar.

Johannes Hougaard
Johannes Hougaard el 20 de Abr. de 2021
Editada: Johannes Hougaard el 20 de Abr. de 2021

0 votos

Another way to do it would be using the fplot by which you don't need a for loop and to define the number of points in your x-axis
fh = @(x)caffeine(x,0.4,10); % That would be a .4 caffeineContent every 10 units.
figure; fplot(fh,[0 120]);
And I'd encourage you to vectorize your code using .* in stead of *
function content = caffeine( time, caffeineContent, durationBetween )
halfLife = 5.7;
tau = halfLife/log(2);
n = floor(time/durationBetween);
content = caffeineContent .* exp(-time/tau) .* (1-exp(durationBetween .* (n+1)/tau))/(1-exp(durationBetween/tau));
That way you could simply call
figure; plot(0:120,caffeine(0:120,0.6,8));

Categorías

Más información sobre Just for fun en Centro de ayuda y File Exchange.

Preguntada:

el 20 de Abr. de 2021

Editada:

el 20 de Abr. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by