В R, есть ли более эффективный и / или общий способ получения желаемого результата из двух матриц ниже?Я подозреваю, что то, что я сделал, - это просто операция умножения эзотерических матриц, о которой я не знаю.
ff <- matrix(1:6,ncol=2)
# [,1] [,2]
# [1,] 1 4
# [2,] 2 5
# [3,] 3 6
bb <- matrix(7:10,ncol=2)
# [,1] [,2]
# [1,] 7 9
# [2,] 8 10
# DESIRE:
# 7 36
# 14 45
# 21 54
# 8 40
# 16 50
# 24 60
Это работает, но не является общим решением, которое я ищу:
rr1 <- t(t(ff) * bb[1,])
rr2 <- t(t(ff) * bb[2,])
rbind(rr1,rr2)
# [,1] [,2]
# [1,] 7 36
# [2,] 14 45
# [3,] 21 54
# [4,] 8 40
# [5,] 16 50
# [6,] 24 60
Этот следующий блок кода кажется довольно эффективным и общим.Но есть ли лучший способ?Что-то вроде kronecker(ffa,bba)
?(что явно не работает в этом случае)
ffa <- matrix(rep(t(ff),2), ncol=2, byrow=T)
bba <- matrix(rep(bb,each=3), ncol=2)
ffa * bba
# [,1] [,2]
# [1,] 7 36
# [2,] 14 45
# [3,] 21 54
# [4,] 8 40
# [5,] 16 50
# [6,] 24 60
Это связано с другими моими вопросами:
Использование функции apply над полем строкис ожиданием суммированных результатов , где я пытаюсь понять поведение самого apply
и:
Это пример какого-то более общего матричного продукта? , где я спрашиваю про теоретическую математику, в частности.