how to shuffle two vectors?

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),...]

 Accepted Answer

Thorsten
Thorsten on 12 Oct 2015
Edited: Thorsten on 12 Oct 2015
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];

More Answers (1)

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, []);

Categories

Tags

Asked:

on 12 Oct 2015

Answered:

on 12 Oct 2015

Community Treasure Hunt

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

Start Hunting!