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

En savoir plus sur Vehicle Dynamics Blockset dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by