how to shuffle two vectors?

4 views (last 30 days)
Mr M.
Mr M. on 12 Oct 2015
Answered: Walter Roberson on 12 Oct 2015
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)

Walter Roberson
Walter Roberson on 12 Oct 2015
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

Find more on Get Started with MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!