Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fastest way to do this double summation?

Tags:

r

What is the fastest way to do this summationenter image description here in R?

This is what I have so far

ans = 0
for (i in 1:dimx[1]){
  for (j in 1:dimx[2]){
    ans = ans + ((x[i,j] - parameters$mu)^2)/(parameters$omega_2[i]*parameters$sigma_2[j])
  }
}

where omega_2, and sigma_2 are omega^2 and sigma^2 respectively.

like image 797
user1871528 Avatar asked Feb 20 '14 19:02

user1871528


People also ask

Can you add two summations together?

Combining two sums Two sums whose indices of summation and summands match up in just the right way can be combined into a single sum. With that change of variables, we have to then specify how each part of the summation expression changes. Starting index. n = 0 corresponds to k = 1.

Does order of double summation matter?

xij, as the order of summation does not matter.


1 Answers

Nothing fancy:

# sample data
m <- matrix(1:20, 4)
sigma <- 1:ncol(m)
omega <- 1:nrow(m)
mu <- 2

sum(((m - mu) / outer(omega, sigma))^2)
like image 125
Matthew Plourde Avatar answered Sep 17 '22 08:09

Matthew Plourde