【问题标题】:Matrix multiplication by loop in RR中的循环矩阵乘法
【发布时间】:2019-08-01 11:23:44
【问题描述】:

两个矩阵 A 和 B,ncol = 2,nrow = 2。

A = [a_11 a_12
     a_21 a_22]

B = [b_11 b_12
     b_21 b_22]

(抱歉这里没有显示矩阵...)

将这两个矩阵相乘,得到一个新的结果矩阵:

c = [a_11*b_11 a_11*b_12 a_12*b_11 a_12*b_12
     a_21*b_21 a_21*b_22 a_22*b_21 a_22*b_22] 

显然,它可以通过一些循环来完成,但我假设存在更简单的方法

C <- matrix(NA, nrow = nrow(A), ncol = ncol(A)*ncol(B))
for (m in 1 : nrow(C)) {
    for (k in 1:ncol(A)) { 
        C[m, (ncol(B)*(k-1)+1) : (k*ncol(B))] <- d1[m, k] * d2[m,]
    }
}

【问题讨论】:

  • cbind(A[, 1]*B, A[,2]*B)matrix(apply(A, 2, function(x) x*B), 2);示例数据:A &lt;- matrix(1:4, 2); B &lt;- matrix(11:14, 2)
  • @jogo 这太棒了!!谢谢

标签: r


【解决方案1】:

你可以这样做:

cbind(A[, 1]*B, A[,2]*B) # or 
matrix(apply(A, 2, function(x) x*B), 2)

数据

A <- matrix(1:4, 2)
B <- matrix(11:14, 2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2021-01-31
    • 2012-04-01
    • 2023-04-06
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多