Interweave two arrays in a specific pattern

12 visualizaciones (últimos 30 días)
Adam Fitchett
Adam Fitchett el 30 de Oct. de 2019
Comentada: Daniel M el 30 de Oct. de 2019
I have two column vectors each of which is 160 rows long. I want to interweave them such that the first 16 rows of vector 2 are underneath the first 16 rows of vector 1, the second 16 rows of vector 2 are underneath the original second 16 rows of vector 1 and so on. E.g. the vectors are interweaved in alternating blocks of 16. Is there a simple way to do this?

Respuestas (2)

Fangjun Jiang
Fangjun Jiang el 30 de Oct. de 2019
Editada: Fangjun Jiang el 30 de Oct. de 2019
%%
a=(1:32)';
b=(10:10:320)';
%%
c=reshape([a,b],16,[]);
d=c(:,[1:2:end,2:2:end]);
e=d(:)
%% better solution from Guillaume
c=[reshape(a,16,[]);reshape(b,16,[])];
e=c(:)
  2 comentarios
Guillaume
Guillaume el 30 de Oct. de 2019
Editada: Guillaume el 30 de Oct. de 2019
May be simpler:
reshape([reshape(a, 16, []); reshape(b, 16, [])], [], 1) %reshape a and b separately into columns of 16 rows. Vertically concatenate the two and reshape back into vector
Fangjun Jiang
Fangjun Jiang el 30 de Oct. de 2019
Apparently, it is better! Thanks!

Iniciar sesión para comentar.


Daniel M
Daniel M el 30 de Oct. de 2019
Editada: Daniel M el 30 de Oct. de 2019
x = [1:160]';
y = x;
xx = reshape(x,16,[])';
yy = reshape(y,16,[])';
zz = [xx,yy]';
z = zz(:);
  2 comentarios
Guillaume
Guillaume el 30 de Oct. de 2019
Editada: Guillaume el 30 de Oct. de 2019
None of the (conjugate!) tranpose are necessary. Simply use zz = [xx; yy]
Daniel M
Daniel M el 30 de Oct. de 2019
details....details...
% edited:
% your starting point, x and y are two column vectors
x = [1:160]';
y = x
%
xx = reshape(x,16,[]); % put into matrix of 16 rows, N columns
yy = reshape(y,16,[]);
zz = [xx,yy]; % vertically concatenate
z = zz(:); % column vector again
Note: the two answers are now identical.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by