有没有办法在Matlab中为一个矩阵数组矢量化kronecker积的计算?例如,给定两个3D阵列A和B,是否可以获得
C(:,:,i) = kron(A(:,:,i),B(:,:,i))
没有循环过来?到目前为止,我已经设法让kroneckers工作的“外部”产品,即C(:,:,i,j)= kron(A(:,:,i),B(:,:,j))用:
matkron_ = @(A,B) reshape(permute(reshape(A(:)*B(:).',[size(A),size(B)]),[4,1,5,2,6,3]),size(A).*size(B))
但是当只需要“内部”产品时,这会进行大量不必要的计算。谢谢!