У нас есть набор данных X n * m matrix, и я хочу создать такую матрицу W = [0 X; X '0] как мне это сделать в Matlab?
A=[1 2;3 4]; B=[0 A;A' 0];
что не так с этим кодом?
Вам просто нужно использовать zeros, чтобы убедиться, что размеры совпадают
zeros
A = [1 2; 3 4]; z = zeros( size( A ) ); B = [ z, A; A', z ];
Поскольку размер 0 отличается от A и A' в строке и столбце. Вы можете создать матрицу с размером, который вы хотите:
0
A
A'
B = zeros(2*size(A));
и замените значение, где вы хотите:
B(1:2, 3:4) = A; B(3:4, 1:2) = A.';
Возможное решение с использованием крон :
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