3
我喜歡乘以具有相同行的兩個矩陣的列的所有可能組合。這意味着兩個矩陣(例如,和b[3x4]
)將生成3×4矩陣,其元素爲a[i,j]*a[k,j]
。 (i
和k
表示行範圍從1至3和j
表示列從1到4)如何將兩個矩陣的列與所有組合相乘
我已經創建了一個例子,可以做到這一點的工作,但一直在尋找無for循環優雅的解決方案。
a <- matrix(1:12,3,4)
b <- matrix(1:9,3,3)
comb<-matrix(NA,3,(ncol(a)*ncol(b)))
for (i in 1:nrow(a)){
comb[i,]<-apply(expand.grid(a[i,],b[i,]),1,prod)
}
comb
這裏,是3×3矩陣,b爲3×4矩陣,並且通過梳各列相乘給出3x12矩陣的輸出。我正在尋找優雅的解決方案,可以推廣到這種乘法超過兩個矩陣。
的!!診斷可能是'C(TRUE,邏輯(3))',我想......不知道這是一種提升。 – Frank
感謝@Grothendieck提供多種優雅的解決方案。它讓我有機會學習R的優秀特性 –