Given two matrices
A: m * r
B: n * r
I want to generate another matrix C: m * n
, with each entry C_ij
being a matrix calculated by the outer product of A_i
and B_j
.
For example,
A: [[1, 2],
[3, 4]]
B: [[3, 1],
[1, 2]]
gives
C: [[[3, 1], [[1 ,2],
[6, 2]], [2 ,4]],
[9, 3], [[3, 6],
[12,4]], [4, 8]]]
I can do it using for loops, like
for i in range (A.shape(0)):
for j in range (B.shape(0)):
C_ij = np.outer(A_i, B_j)
I wonder If there is a vectorised way of doing this calculation to speed it up?
(m, n, r, r)
-shape array, or do you want a 2D,(m, n)
-shape array ofobject
dtype where each element is another array? I would strongly recommend the first option, but your description sounds closer to the second. – Semiannual(m, n, r, r)
-shape array. – Bomber