Hey, I need help vectorizing this for-loop. In general, I need help vectorizing a for-loop with a term that references it's previous value.
In my case, DT is already a vector, and I want to fill out the Time vector as such
Time = zeros(1,N)
Time(1) = DT(1)/2
for i=2:N
Time(i)=Time(i-1)+0.5*(DT(i)+DT(i-1));
end
Is there a simple vectorization to this for loop?
Thank you.

 Réponse acceptée

Sean de Wolski
Sean de Wolski le 4 Août 2015
Modifié(e) : Sean de Wolski le 4 Août 2015

0 votes

Usually cumsum and diff will be the two functions that help referencing adjacency.
Time2 = cumsum([DT(1)/2 0.5*(DT(2:end)+DT(1:end-1))]);
And to check
isequal(Time,Time2)
ans = 1

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by