我们有一个数据集X n * m矩阵,我想创建一个像W = [0 X; X'0]这样的矩阵 我应该如何在Matlab中做到这一点?
A=[1 2;3 4];
B=[0 A;A' 0];
该代码有什么问题?
答案 0 :(得分:2)
使用kron的可能解决方案:
A = [1 2; 3 4]
result = kron([0 1;0 0], A) + kron([0 0;1 0], A');
result =
0 0 1 2
0 0 3 4
1 3 0 0
2 4 0 0
答案 1 :(得分:1)
您只需要使用zeros
来确保尺寸一致
A = [1 2; 3 4];
z = zeros( size( A ) );
B = [ z, A; A', z ];
答案 2 :(得分:0)
因为0
的大小与行和列中的A
和A'
不一样。
您可以创建所需大小的矩阵:
B = zeros(2*size(A));
并在所需位置替换值:
B(1:2, 3:4) = A;
B(3:4, 1:2) = A.';