How to calculate array by expression with sum, not using loops

I want to calc array (k=1..N) from expression arr(k)=1/N*(\sum_{i=1}^{N}{arr2(i)*cos((2*k-1)*pi*i/N)})
arr2 -- already calculated array
N -- positive integer( it can be very big, so I need solution with good performance)
It is very easy to do with loops, but how to do it without loops?

Answers (1)

N = numel(arr);
k = 1:N;
arr = cos((2*k(:)-1)*k(:).'*pi/N)*arr2(:)/N;

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Asked:

on 7 May 2014

Answered:

on 7 May 2014

Community Treasure Hunt

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

Start Hunting!