R:定义一个矩阵,其总称是向量乘积

R: Define a matrix which general term is vectors product

我想从两个向量乘积 (v1 & v2) 定义一个矩阵 (M)。 我的意思是

M(i, j) = v1(i) * v(j)

我知道我可以写一个 for 循环,但矩阵肯定很大 (400x400),所以我正在寻找一种尽可能最快的方法。

奖励:事实上我的两个向量是展平的矩阵,所以如果有一种方法可以在不展平它们的情况下做我想做的事情,那将是完美的。 (这听起来有点像 Hadamard 产品,但两个矩阵之间有所有可能的组合)

我们可以使用外部

outer(v1, v2)

以上答案非常有效,但我碰巧找到了更适合特定需求的东西:Kronecker 产品让我可以做我想做的事,并将所有东西都保存在它们的矩阵形式下。

Kronecker product's wiki

M <- Mat1 %x% Mat2