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.

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 4 Aug. 2015
Bearbeitet: Sean de Wolski am 4 Aug. 2015

0 Stimmen

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

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by