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

1 view (last 30 days)
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)

Andrei Bobrov
Andrei Bobrov on 7 May 2014
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

Community Treasure Hunt

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

Start Hunting!