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?

Respuestas (1)

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

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 7 de Mayo de 2014

Respondida:

el 7 de Mayo de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by