一个自己的函数来乘以r中的两个矩阵

时间:2016-02-09 15:36:49

标签: r matrix multiplying

所以我有一个任务说: 使自己的函数乘以两个矩阵(而不是使用%*%)。

我试过这个,但显然我不起作用......

isacs_funcion<- function (A,B){
      result<- sum(as.vector(A) * as.vector(B)) 
       return(matrix(A,B ))}

有人能帮助我吗?抱歉英文不好

1 个答案:

答案 0 :(得分:1)

我们可以尝试使用嵌套的sapply

t(sapply(seq_len(ncol(m1)), function(i) 
    sapply(seq_len(nrow(m2)), function(j) sum(m1[i,] * m2[,j]))))
 #     [,1] [,2] [,3] [,4] [,5]
 #[1,] 1590 1865 2140 2415 2690
 #[2,] 1730 2030 2330 2630 2930
 #[3,] 1870 2195 2520 2845 3170
 #[4,] 2010 2360 2710 3060 3410
 #[5,] 2150 2525 2900 3275 3650

类似于

  m1%*%m2
  #    [,1] [,2] [,3] [,4] [,5]
  #[1,] 1590 1865 2140 2415 2690
  #[2,] 1730 2030 2330 2630 2930
  #[3,] 1870 2195 2520 2845 3170
  #[4,] 2010 2360 2710 3060 3410
  #[5,] 2150 2525 2900 3275 3650

数据

 m1 <- matrix(1:25, 5, 5)
 m2 <- matrix(26:50, 5, 5)