почему моя функция sum () не работает для матричных операций в R - PullRequest
0 голосов
/ 05 марта 2020

Ниже приведен мой код R, я хочу tx[1, 1] = 1*2^1 + 4*5^2 + 7*8^3, tx[1, 2] = 4*5 + 7*8^2, tx[1, 3] = 7*8 ,, но он включает только 7*8^3 для tx[1, 1] и 7*8^2 для tx[1, 2]. Другие элементы в матрице tx также включают только последний член в операции суммирования. Итак, кто-нибудь может сказать мне, как исправить мой код, чтобы иметь правильный вывод? Заранее спасибо!

A <- matrix(c(1:9),ncol=3)
B <- matrix(c(2:10),ncol=3)
tx<-matrix(rep(NA,3*3),3,3)

for(j in 1:3)
{
  for(i in 1:3)

  {
    for(k in 1:3-i+1)
    {
      tx[j,i]<-sum(A[j,k+i-1]*(B[j,k+i-1])^k)
    }
  }
}

1 Ответ

0 голосов
/ 05 марта 2020

Прямо сейчас это не суммирование результатов каждого l oop, а просто сохранение того, каким будет последний результат l oop. Попробуйте вместо этого:

A <- matrix(c(1:9),ncol=3)
B <- matrix(c(2:10),ncol=3)
tx<-matrix(rep(0,3*3),3,3)

for(j in 1:3)
{
  for(i in 1:3)

  {
    for(k in 1:3-i+1)
    {
      tx[j,i]<-tx[j,i] + (A[j,k+i-1]*(B[j,k+i-1])^k)
    }
  }
}

Я инициализировал матрицу tx, чтобы начать с 0, и добавил результат каждого l oop к существующему итогу, чтобы он увеличивался по каждому l oop.

...