How to write a function with a for loop

2 vues (au cours des 30 derniers jours)
TRISHITA BANERJEE
TRISHITA BANERJEE le 4 Juil 2018
if t(i)=L1*(i-1)+ L[(i-1)/e]*t_k
i get
t1=0;
t2=L1;
t3=2*L1+t_k;
t4=3*L1+t_k;
where e=2 and i want to have a floor function for L[ (i-1)/e].How to create a function for the following with input e,imax,L1 and t_k like function delay(e,imax,L1,t_k) with a for loop
  2 commentaires
TRISHITA BANERJEE
TRISHITA BANERJEE le 4 Juil 2018
Modifié(e) : Walter Roberson le 4 Juil 2018
Can any one verify if its correct
function t = delay (e, imax, L1 , t_k)
t = cell(imax,imax);
for i=1:imax
t(i) = L1 * (i-1) + round((i-1) / e)* t_k;
end
Walter Roberson
Walter Roberson le 4 Juil 2018
You mentioned floor() earlier, but here you use round() instead?

Connectez-vous pour commenter.

Réponse acceptée

Guillaume
Guillaume le 4 Juil 2018
What's stopping you from trying? You'll quickly find out that it errors.
t = zeros(imax);
or probably better
t = zeros(1, imax);
would get rid of the error. Whether or not it's what you want, I don't know.
Note that the same can be achieved without a loop:
im = 0:imax - 1;
t = L1 * im + round(im /e) * t_k;

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by