Nested for loop produces plot that is shifted horizontally
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I want to set up a nested for loop to plot mRNA expression levels (y) over time (t) for different values of beta. y = 10 * beta (1 - exp(-t/10)).
time = [0 : 0.5 : 10];
beta = transpose([1 : 5]);
y = zeros(5, 21); % initializing a matrix of zeros to store y values
for time_point = 1 : length(time)
for beta_val = beta
y(beta_val, time_point) = 10 * beta .* (1 - exp(-1/10 .* (time_point)));
end
plot(time, y);
end
With this, I successfully get a plot, but it seems like the plot is shifted. y has to be zero for all plots at t=0.
Can someone tell me what I am doing wrong?
0 Commenti
Risposta accettata
sloppydisk
il 27 Mag 2018
Modificato: sloppydisk
il 27 Mag 2018
You evaluated at the index of the timevector, rather than at the time itself. You could write time(time_point) instead to get the desired result. Or you could make just evaluate on a grid and avoid the loop altogether:
time = 0:0.5:10;
beta = (1:5)';
y = 10 * beta * (1 - exp(-.1*time));
plot(time, y);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!