MATLAB Answers

Can this loop be sped up significantly?

1 view (last 30 days)
Greg
Greg on 5 Aug 2015
Edited: Muthu Annamalai on 5 Aug 2015
I'm at a loss as to how I can speed up this loop since each time-step is dependent on the result of the previous time-step. Can this be vectorized with some nifty approach?
for t = startingT:T
data = [d(t-lagsT)' E(t - lagsTE)'];
E(t) = data * coefficients;
end
Thank you,
Greg
  3 Comments
Greg
Greg on 5 Aug 2015
Sorry Sean, just made a quick edit to coefficients. It should work now.

Sign in to comment.

Answers (1)

Muthu Annamalai
Muthu Annamalai on 5 Aug 2015
Edited: Muthu Annamalai on 5 Aug 2015
It seems like you are trying to calculate a 2-tap FIR filter (if your lagsTE = 1) or lagsTE+1 tap FIR filter with lagsTE-2 coefficients set to 0.
Maybe you could do this in the frequency domain without carrying out the convolution in the time domain.
Try using the MATLAB command filter http://www.mathworks.com/help/matlab/ref/filter.html

Community Treasure Hunt

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

Start Hunting!