Accélérer une boucle imbriquée
Bonjour,
Je me retrouve à devoir écrire cette boucle très inefficace :
Code:
1 2 3 4 5 6
|
for (i in 1:n) {
for (j in 1:n) {
if (A[i,j]>0) W_nc[nums[i],nums[j]] = W[i,j]
}
} |
où "nums" est un vecteur de taille n, contenant des indices dans [1,nc] correspondant à i et j dans [1,n]. Les autres éléments de W_nc valent 0.
Y-a-t'il un moyen d'écrire quelque chose comme "for ( (i,j) in all_positive_pairs(A) ) do W_nc[nums[i],nums[j]] = W[i,j]" ? Ou faut-il le coder en C ? (Auquel cas il faudra que j'apprenne à le faire, je code en C/C++ et un peu en R, mais n'ai pas encore mélangé les deux :-) )
Merci d'avance !