Tutto ciò che serve è un po 'di catenazione e rimodellamento. In primo luogo, si catenaria lungo la dimensione 2, quindi si traspone e si linearizza (AB(:)
), in modo da ottenere un vettore i cui primi tre elementi sono la prima riga di A, quindi la prima riga di B, quindi la seconda riga di A, ecc. Tutto ciò che rimane alla fine è chiamare rimodella per rimettere tutto in un array.
nColumns = size(A,2);
AB = [A,B]';
AB = reshape(AB(:),nColumns,[])';
In alternativa, è possibile costruire AB direttamente tramite indicizzazione. In questo caso, A può avere una riga in più rispetto a B. Questo è probabilmente più veloce di quanto sopra.
[nRowsA,nCols] = size(A);
nRowsB = size(B,1);
AB = zeros(nRowsA+nRowsB,nCols);
AB(1:2:end,:) = A;
AB(2:2:end,:) = B;