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]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.