What is the simplest way to shuffle two vectors? It is possible to do it in one line?
from u and v I want: [u(1),v(1),u(2),v(2),u(3),...]

 Réponse acceptée

Thorsten
Thorsten le 12 Oct 2015
Modifié(e) : Thorsten le 12 Oct 2015

1 vote

u = rand(1,10);
v = 10*rand(1,10);
uv = [u; v]; uv = uv(:)';
or
n = numel(u); uv([1:2:2*n-1 2:2:2*n]) = [u v];

Plus de réponses (1)

Walter Roberson
Walter Roberson le 12 Oct 2015

0 votes

uv = [u(:).'; v(:).'];
uv = uv(:).';
If you are certain that u and v are row vectors then this can be simplified to
uv = [u; v];
uv = uv(:).';
It can also be written in a single line if you use reshape
uv = reshape([u; v], 1, []);

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by