我有两个矩阵。
A<-matrix(c(1,0,2,3),2,2)
B<-matrix(c(0,1,4,2),2,2)
而不是乘法(
A%*%B
)结果如下:
C[1,1]<-A[1,1]*B[1,1]+ A[1,2]*B[2,1]
C[1,2]<-A[1,1]*B[1,2]+ A[1,2]*B[2,2]
C[2,1]<-A[2,1]*B[1,1]+ A[2,2]*B[2,1]
C[2,2]<-A[2,1]*B[1,2]+ A[2,2]*B[2,2]
如何获得乘法的修改版本并得到如下结果:
C[1,1]<-min(A[1,1],B[1,1])+ min(A[1,2],B[2,1])
C[1,2]<-min(A[1,1],B[1,2])+ min(A[1,2],B[2,2])
C[2,1]<-min(A[2,1],B[1,1])+ min(A[2,2],B[2,1])
C[2,2]<-min(A[2,1],B[1,2])+ min(A[2,2],B[2,2])
?
我知道我可以通过旋转来完成,但我正在寻找更快的解决方案。
result <- matrix(nrow= 2, ncol= 2)
for(i in 1:2){
minMat <-t(apply(B,2,function(x) pmin(x, A[i,])))
result[i,]<-rowSums(minMat)
}