【发布时间】:2016-01-15 09:51:36
【问题描述】:
我有一个简单的问题:我有这两个矩阵
矩阵 Y(264 行 4 列)
[,1] [,2] [,3] [,4]
1751 -1.745529 0.3692280 0.04607022 -0.07004973
1752 -1.532722 0.5642921 0.07477571 0.03380135
1753 -1.657636 0.4660229 0.05772685 -0.03314599
1754 -1.685309 0.4540047 0.08254891 -0.01623810
1755 -1.702469 0.4483389 0.10709689 -0.03936556
1756 -1.761332 0.4505378 0.04801420 -0.06385137
矩阵 E(4x4,元素 e)
[,1] [,2] [,3] [,4]
[1,] -0.8769976 -0.4706054 -0.07186508 0.06512449
[2,] -0.4085563 0.8198519 -0.40067903 -0.01951755
[3,] 0.2190770 -0.3206892 -0.86394973 -0.32055350
[4,] -0.1263415 0.0594299 0.29644997 -0.94478745
我想对每年 b(t)=∑(e[1,i]∙Y[,i]) 执行此操作,其中 i 从 1 到 4。
这是我应该得到的(一个 264x4 矩阵),这是我使用的代码
betaNew1<-(Y[,1]%*%t(P[1,1]))
betaNew2<-(Y[,2]%*%t(P[1,2]))
betaNew3<-(Y[,3]%*%t(P[1,3]))
betaNew4<-(Y[,3]%*%t(P[1,4]))
beta_t<-data.frame(betaNew1,betaNew2,betaNew3,betaNew4)
betaNew1 betaNew2 betaNew3 betaNew4
1 1.530825 -0.1737607 -0.003310840 0.003000300
2 1.344193 -0.2655589 -0.005373763 0.004869730
3 1.453743 -0.2193129 -0.004148544 0.003759431
4 1.478012 -0.2136570 -0.005932384 0.005375955
5 1.493062 -0.2109907 -0.007696526 0.006974630
6 1.544684 -0.2120255 -0.003450544 0.003126900
如何避免使用 4 条指令?
【问题讨论】:
-
开始here
-
好的,谢谢。我知道如何使用矩阵乘积,但我正在尝试做一些不同的事情,比如:Y[,1]%*%t(P[1,1])。我不想重复这个指令四次: Y[,1]%*%t(P[1,1]),Y[,2]%*%t(P[1,2]),Y[ ,3]%*%t(P[1,3]),Y[,4]%*%t(P[1,4])
-
@akrun:我已经编辑过了。我认为这与其他问题不同
-
预期输出中的这些值是否正确?
-
不,只有第一列是正确的。在其他列中,我放置随机值只是为了显示它应该是怎样的。我正在尝试使用 for 循环 betaNew
标签: r matrix matrix-multiplication