通过直到对角线的行计算矢量和矩阵的累积和

时间:2018-01-26 14:36:50

标签: r matrix vector sum

我有一个矩阵(x)

y<-c(0.5,1.2,4.8)
y
[1] 0.5 1.2 4.8

和向量(y):

        [ ,1]             [ ,1][ ,2][ ,3]              [ ,1] 
   [1, ] 0.5          [1, ]  6    0    0          [1, ]  3  
(y)[2, ] 1.2   *  (x) [2, ]  3    4    0    = (w) [2, ]  6,3
   [3, ] 4.8          [3, ]  2    8    5          [3, ]  34,6

我想通过向量y的元素计算直到矩阵对角线的累积和。 我需要的是:

         [ ,1]
   [1, ]  3         0.5*6
(w)[2, ]  6,3   =   0.5*3 + 1.2*4
   [3, ]  34,6      0.5*2 + 1.2*8 + 4.8*5

其中:

cumsum(y*x)

结果我需要这个向量(w)。 [1] 3.0 6.6 16.2 16.2 21.0 59.4 59.4 59.4 83.4 cumsum(y*t(x)) [1] 3.0 3.0 3.0 4.5 9.3 9.3 10.3 19.9 43.9 - 按数字顺序计算列的所有元素。我有一个矢量:

 Warning:com.firebase.geofire.GeoFire: can't find referenced method 'com.google.firebase.tasks.Task setValue(java.lang.Object,java.lang.Object)' in program class com.google.firebase.database.DatabaseReference

我需要,不会计算零。 可能吗? 提前谢谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试使用colSums,即

colSums(y *t(x))
#[1]  3.0  6.3 34.6

答案 1 :(得分:1)

for循环可用于获取w累积值:

w=integer()

for(i in 1:ncol(x)){

  w[i]=sum(x[i,1:i]*y[1:i])

 }

w