[英]R matrix - row vector - column vector - different output - confusion
请注意以下R会话。
> z3 <- cbind(c(10,10,10,10));
> z3
[,1]
[1,] 10
[2,] 10
[3,] 10
[4,] 10
> m2
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12
> m2[,2]
[1] 2 5 8 11
> m3
[,1] [,2] [,3] [,4]
[1,] 10 10 10 8
[2,] 1 1 1 1
> m3 %*% m2[,2];
[,1]
[1,] 238
[2,] 26
> m3 %*% z3;
[,1]
[1,] 380
[2,] 40
>
这里m3是一个2x4矩阵,因此它可以乘以m2 [,2](m2的第二列),因为m2 [,2]是一个4x1矩阵(因此它们兼容乘法)。 现在请注意,z3也是一个4x1矩阵(如m2 [,2])。
我想知道为什么他们的演示文稿(m2 [,2]和z)是不同的(我的意思是当我输入z3时我看到的输出,当我在R提示符下输入m2 [,2]时)。 我发现这种差异很奇怪。 我喜欢z3的演示,我不喜欢m2 [,2]的演示。
如果您将子集分配到1维,则R只需将其转换为向量。 (编辑:它只是简化。即,“返回到可能的最低维度”)
如果您不希望发生这种情况,请执行m2[,2,drop=FALSE]
作为旁注, (1:4)%*%m2
起作用, m2%*%(1:3)
。 因此,即使它丢弃了矩阵表示,它也会很好地完成数学工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.