【发布时间】:2016-01-13 22:02:18
【问题描述】:
我正在尝试仅使用 repmat 和 reshape 来复制 Kron 产品,我相信我已经非常接近了,但我无法进行最后一次正确的 reshape。
特别是我在重塑A时遇到问题
为了简单起见,假设我们有
A=[1 3; 2 4]
B=[5 10; 10 5]
所以我的kron(A,B) 将是一个 4x4 矩阵。
kron=[5 10 15 30
10 5 30 15
10 20 20 40
20 10 40 20]
我正在这样做:
Y=repmat(B,2,2)
X=A(:);
X=repmat(X,1,2)';
X=X(:);
X=repmat(X,1,2);
这给了我以下 8x2 矩阵:
X= [1 1
1 1
2 2
2 2
3 3
3 3
4 4
4 4]
我无法弄清楚如何进行正确的整形以获得我的 4x4 矩阵:
X=[1 1 3 3
1 1 3 3
2 2 4 4
2 2 4 4]
然后我就能计算:X.*Y=kron(A,B)
【问题讨论】:
-
你会一直在维度 2 中吗?
-
当运行
kron(A,B)我得到[5 10 15 30; 10 5 30 15; 10 20 20 40; 20 10 40 20] -
@m.s.你是对的,我在我的 matlab 中反转了 Y,我现在正在纠正它。
-
在这个具体的例子中你可以使用
X = [X(1:end/2,:), X(end/2+1:end,:)] -
@BillBokeey 我正在尝试制作适用于通用 mxn、pxq 矩阵的东西