Compose two vectors from one vector with step

3 visualizaciones (últimos 30 días)
yousef Yousef
yousef Yousef el 9 de Dic. de 2022
Comentada: Voss el 9 de Dic. de 2022
Hi, I have vector S=[1:64]. I want to compose two vectors:
S_1=[ 1 2 3 4 9 10 11 12 17 18 19 20 ....], step of M=4
S_2=[5 6 7 8 13 14 15 16 21 22 23 24....], step of M=4
L=length(S)
length(S_1)=length(S_2)=L/2
  1 comentario
yousef Yousef
yousef Yousef el 9 de Dic. de 2022
Movida: Voss el 9 de Dic. de 2022
S = 1:64;
xx = reshape(x, 4, 16);
xxx=xx(:,1:2:end)
xxxx=xx(:,2:2:end-1)
S_1=xxx(:)'
S_2=xxxx(:)'
This answer does what I want. However Im sure there is a way to answer this question in a shorter code, any advice? Thank you

Iniciar sesión para comentar.

Respuesta aceptada

Voss
Voss el 9 de Dic. de 2022
Editada: Voss el 9 de Dic. de 2022
N = 64;
S = 1:N;
M = 4;
S_new = reshape(permute(reshape(S,M,2,[]),[1 3 2]),N/2,[]).'
S_new = 2×32
1 2 3 4 9 10 11 12 17 18 19 20 25 26 27 28 33 34 35 36 41 42 43 44 49 50 51 52 57 58 5 6 7 8 13 14 15 16 21 22 23 24 29 30 31 32 37 38 39 40 45 46 47 48 53 54 55 56 61 62
Now S_new(1,:) is your S_1 and S_new(2,:) is your S_2.
  5 comentarios
yousef Yousef
yousef Yousef el 9 de Dic. de 2022
Perfect. Appreciated. Thank you
Voss
Voss el 9 de Dic. de 2022
You're welcome!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre System Composer en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by