我正在尝试在R中乘以矩阵。但是,我无法在没有错误的情况下这样做。维度的乘法似乎是正确的,但不确定它可能是什么。这是我的数据和我的循环的背景。谢谢你的帮助。
t
# [1] 6848
dim(A)
# [1] 2 2
dim(backward)
# [1] 6848 2
dim(B)
# [1] 6848 2
is.matrix(A)
# [1] TRUE
is.matrix(backward)
# [1] TRUE
is.matrix(B)
# [1] TRUE
for (i in (t-1):1){ #FIXXXXX
backward[i,] = t(A%*%(t(backward[i+1,])))*B[i+1,]
}
A%*%(t(向后[i + 1,]))中的错误:不一致的参数
答案 0 :(得分:2)
默认情况下,从矩阵中选择单个行或列会生成向量。将drop=FALSE
添加到子集表达式中以防止这种情况发生。
t(A %*% t(backward[i+1, , drop=FALSE])) * B[i+1, , drop=FALSE]
顺便说一句,将t
变量重命名为其他变量可能是个好主意,因为t
也是转置函数。