2013-05-10 284 views
0

我有一个矩阵m和一个向量v。我想乘以矩阵m为vetcor v并得到一个矩阵与m相同的尺寸意味着将第一个元素m乘以v和....我怎样才能做到这一点在R?矩阵与R中的向量相乘

m = matrix(c(1, 2, 3, 4, 5), ncol=1) 
    v = c(1, 2, 3, 4, 5) 
    > z 
     [,1] 
[1,] 1 
[2,] 4 
[3,] 9 
[4,] 16 
[5,] 25 
+0

这是普通的标量乘法会做。 '?“*”' – 2013-05-10 16:42:53

回答

0

Cross products可以使用%*%运营商获得:

> m = matrix(c(1, 2, 3, 4, 5), ncol=1) 
>  v = c(1, 2, 3, 4, 5) 

> m %*% v 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 1 2 3 4 5 
[2,] 2 4 6 8 10 
[3,] 3 6 9 12 15 
[4,] 4 8 12 16 20 
[5,] 5 10 15 20 25 
> m * v 
    [,1] 
[1,] 1 
[2,] 4 
[3,] 9 
[4,] 16 
[5,] 25 
+1

'*'不仅仅在第一列上起作用。在这个例子中,只有1列,但与'matrix(1,ncol = 2,nrow = 3)* 2:4'比较。 – Roland 2013-05-10 09:57:37

+0

下调直到R的行为描述中的错误得到纠正。请在任何介绍性R教程中查看回收的概念。 – 2013-05-10 16:41:53

+0

迪宁,你可以编辑答案,如果有道理,我会批准它。同上罗兰 – hd1 2013-05-10 16:57:20