【发布时间】:2013-09-02 22:51:32
【问题描述】:
我有一个相对基本的问题。
我有一个 20 列和 50 行的矩阵。 我有一个包含 20 个数字的向量。
我想将向量乘以矩阵的每一行,这样每一行都建立在前一行的值之上(即 row[n]
我假设使用 for 循环是我想要执行此操作的方式,但我似乎无法找出正确的命令来让 R 执行此操作。到目前为止,它警告我“要替换的项目数不是替换长度的倍数”,并且只对矩阵的第一列执行操作。
示例代码:
trun<-50
prun<-20
M<-matrix(0,trun,prun)
M[1,]<-10
v<-seq(0.05,1,by=0.05)
for (t in 2:trun)
{
M[t]<-M[t-1]*v
}
【问题讨论】:
-
欢迎来到 SO。您的向量
v的长度为 20,而您的列向量的长度为 50。因此,R 会发出警告;在这种情况下,R 会回收。 -
要引用行
t,请使用M[t,]而不是M[t]。