У меня довольно простое вычисление, которое мне нужно сделать, но я не могу понять, как это сделать так, чтобы это было даже близко к эффективному. У меня есть большая матрица NxN, и мне нужно вычислить следующее:Избегайте вложенных циклов при суммировании по матричным индексам
Я все еще довольно неопытен в кодировании, и поэтому единственный способ, который приходит на ум, чтобы сделать простые вещи и использовать 3 для петель, чтобы перемещаться по показателям:
sum=0
for(i in 1:n)
{
for(j in 1:n)
{
for(k in 1:n)
{
sum = sum + A[i,j]*A[j,k]
}
}
}
Излишне говорить, что для любой приличной матрицы размера это занимает навсегда, чтобы бежать. Я знаю, что должен быть лучший, более эффективный способ сделать это, но я не могу понять это.
Попробуйте 'sum (A% *% A)' – nicola
Ну, это замечательно, спасибо! –
@nicola Почему вы не публикуете свои комментарии? –