繁体   English   中英

R矩阵 - 行向量 - 列向量 - 不同输出 - 混淆

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM