r - R中的循环矩阵乘法
问题描述
两个矩阵 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) # or
matrix(apply(A, 2, function(x) x*B), 2)
数据
A <- matrix(1:4, 2)
B <- matrix(11:14, 2)
推荐阅读
- c# - Visual Studio EF:控制器认为它使用旧的上下文
- python - python中新文件的默认文件夹是什么?
- gremlin - 在 gremlin 中“连接”图形的两个节点的正确方法是什么?
- r - 在 Shiny 应用程序(pickerInput)中从外部源读取选择列表输入
- smartsheet-api - Smartsheet API - ModuleNotFoundError
- jquery - 嵌套 Ajax 未按顺序执行
- excel - 通过 VBA 生成 PDF 时的问题
- spring - 在同一日期字段列上查找最小值和最大值并使用 jpa 实体管理器标准构建器进行计数
- assembly - MIPS 中的回文生成
- elasticsearch - preserve_original 弹性搜索中的原始令牌