
Hi All,

The following is a snippet of my code. It works fine but it is very slow. Is it possible to speed it up by using different data structure or better solution? For 40000 runs, it takes 8 minutes now. Thanks a lot



fun_activation = function(s_k, s_hat, x_k, s_hat_len)
{
    common = intersect(s_k, s_hat);
    if(length(common) != 0)
    {
        index  = match(common, s_k);
        round(sum(x_k[index]) * length(common) / (s_hat_len * length(s_k)), 3);
    }
    else
    {
        0;
    }

}

fun_x = function(a)
{
    round(runif(length(a), 0, 1), 2);
}

symbol_len = 50;
PHI_set = 1:symbol_len;

S = matrix(replicate(M * M, sort(sample(PHI_set, sample(symbol_len, 1)))), M, M);
X = matrix(mapply(fun_x, S), M, M);

S_hat = c(28, 34, 35)
S_hat_len = length(S_hat);

  S_hat_matrix = matrix(list(S_hat), M, M);

system.time(
for(I in 1:40000)
{
A = matrix(mapply(fun_activation, S, S_hat_matrix, X, S_hat_len), M, M);
}
)



HXD


	[[alternative HTML version deleted]]

