Как суммировать последовательность матриц? - PullRequest
0 голосов
/ 05 августа 2020

, скажем, у меня была матрица

> A<-matrix(c(5,1,3,5,6,6,7,8,5),nrow=3,ncol=3)
> A
     [,1] [,2] [,3]
[1,]    5    5    7
[2,]    1    6    8
[3,]    3    6    5


, и я хотел взять сумму i от 1 до 3, умноженную на каждый соответствующий столбец.

так, как

for (i in 1:3){
i*A[,i]
something 
}

после этого есть еще код, который я не могу понять, каким бы простым он ни казался, цель состоит в том, чтобы суммировать 1 * первый столбец + 2 * второй столбец + 3 * 3-й столбец, используя какой-то итеративный l oop с и.

1 Ответ

1 голос
/ 06 августа 2020

Если вы ищете версию for l oop, возможно, вы можете попробовать следующий код

s <- 0
for (i in 1:3) {
  s <- s + i*A[,i,drop = FALSE]
}

, чтобы

> s
     [,1]
[1,]   36
[2,]   37
[3,]   30

Как упоминалось @ eastclintw00d в комментарии, простой способ - использовать матричное умножение

> A%*% 1:3
     [,1]
[1,]   36
[2,]   37
[3,]   30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...