[R] Matrix-vector multiplication without loops
    Richard Graham 
    rickhg12hs at gmail.com
       
    Thu Nov 16 05:43:47 CET 2006
    
    
  
On 11/14/06, Ravi Varadhan <rvaradhan at jhmi.edu> wrote:
> I am trying to do the following computation:
>
>       p <- rep(0, n)
>       coef <- runif(K+1)
>       U <- matrix(runif(n*(2*K+1)), n, 2*K+1)
>       for (i in 0:K){
>       for (j in 0:K){
>       p <- p + coef[i+1]* coef[j+1] * U[,i+j+1]
>       } }
>
> I would appreciate any suggestions on how to perform this computation
> efficiently without the "for" loops?
This kicks butt on my machine:
p <- as.vector(U %*% convolve(coef,rev(coef),type="open"))
HTH!
Richard Graham
JHU '84 EE&CS
    
    
More information about the R-help
mailing list