В MATLAB вы обычно используете команду cat
для этого:
bigMat = cat(dimNo, matA, matB); % dimNo can be 1, 2, ...
Но в случае конкатенации по измерению 2 и вы также можете просто использовать [... ; ...]
:
bigMat = [matA; matB];
(что эквивалентно функции vertcat
).
Если вы заранее знаете, сколько матриц вы хотите объединить (т. Е. Окончательный размер результата), вы должны предварительно выделить матрицу, используя, например, bigMat = zeros(1, N, 28, 28)
, затем поместите каждое изображение в правильное положение, аналогично предыдущему ответу -
img1(:,n,:,:) = img2; % where n is 1..N, and not anything like end+1
Мы не хотим использовать end+1
, так как это приводит к потерям производительности, связанным с постоянным перераспределением больших и больших массивов и копированием всего содержимого массива каждый раз.