【发布时间】:2015-02-03 08:17:47
【问题描述】:
我试图在 R 中找到两个矩阵的点积。在必须转置的 q 矩阵中,我有三个不同的 q 值,它们是我之前随机生成的,在 z 矩阵中,三个随机生成的 z 值作为随机点 i 的坐标。我有:
z0= NULL
for (i in 1:100){
z0[i]= 1
}
z1= runif(100, min=0, max= 20)
z2= runif(100, min=0, max=20)
q0= runif(1, 0, 1)
q1= runif(1, 0, 1)
q2= runif(1, 0, 1)
i= runif(1, 1, 101)
i= ceiling(i-1)
q= matrix(c(q0,q1,q2), ncol=3)
z= matrix(c(z0[i],z1[i],z2[i]), ncol=3)
s[i]= t(q)*z
但是,当我尝试计算 s[i] 时,我得到了Error in t(q) * z : non-conformable arrays。我不知道为什么会这样,因为它们似乎都具有相同的长度。
这是我第一次使用 R,所以我不确定发生了什么。
谢谢!
【问题讨论】:
-
你必须展示一个可重现的例子
q= matrix(c(q0,q1,q2), ncol=3) Error in matrix(c(q0, q1, q2), ncol = 3) : object 'q0' not found -
点积是
%*%。 -
@akrun,我已经让它可重现了,抱歉之前没有这样做。
-
@JonathanO'Farrell 你试过帕斯卡的建议吗
-
@Khashaa 我得到了同样的错误“错误在 v %*% w : non-conformable arguments”。 crossprod(v, w) 有帮助。谢谢。
标签: r matrix transpose dot-product