Borrar filtros
Borrar filtros

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)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by