我觉得R中的矩阵运算非常令人困惑:我们正在混合行 vector 和列 vector 。

  • 在这里,我们将x1定义为一个 vector ,(我假设R默认 vector 是列 vector 吗?但是它没有显示它是以这种方式排列的。)
  • 然后我们定义x2x1的转置,它的显示对我来说也很奇怪。
  • 最后,如果我们将x3定义为矩阵,则显示效果会更好。

  • 现在,我的问题是,x1x2是完全不同的东西(一个是另一个的转置),但是我们在这里得到相同的结果。

    有什么解释吗?可能我不应该将 vector 和矩阵运算混合在一起吗?
    x1 = c(1:3)
    x2 = t(x1)
    x3 = matrix(c(1:3), ncol = 1)
    
    x1
    [1] 1 2 3
    
    x2
         [,1] [,2] [,3]
    [1,]    1    2    3
    
    x3
         [,1]
    [1,]    1
    [2,]    2
    [3,]    3
    
    x3 %*% x1
         [,1] [,2] [,3]
    [1,]    1    2    3
    [2,]    2    4    6
    [3,]    3    6    9
    
    x3 %*% x2
         [,1] [,2] [,3]
    [1,]    1    2    3
    [2,]    2    4    6
    [3,]    3    6    9
    

    最佳答案

    参见?`%*%`:

    关于r - R中的矩阵和向量乘法运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39025900/

    10-13 03:28