как вставить матрицу в другую матрицу в Matlab - PullRequest
0 голосов
/ 21 января 2019

У нас есть набор данных X n * m matrix, и я хочу создать такую ​​матрицу W = [0 X; X '0] как мне это сделать в Matlab?

   A=[1 2;3 4];
   B=[0 A;A' 0];

что не так с этим кодом?

Ответы [ 3 ]

0 голосов
/ 21 января 2019

Вам просто нужно использовать zeros, чтобы убедиться, что размеры совпадают

A = [1 2; 3 4];
z = zeros( size( A ) );
B = [ z, A; A', z ];
0 голосов
/ 21 января 2019

Поскольку размер 0 отличается от A и A' в строке и столбце. Вы можете создать матрицу с размером, который вы хотите:

B = zeros(2*size(A));

и замените значение, где вы хотите:

B(1:2, 3:4) = A;
B(3:4, 1:2) = A.';
0 голосов
/ 21 января 2019

Возможное решение с использованием крон :

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...