Compose two vectors from one vector with step

2 Ansichten (letzte 30 Tage)
yousef Yousef
yousef Yousef am 9 Dez. 2022
Kommentiert: Voss am 9 Dez. 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 Kommentar
yousef Yousef
yousef Yousef am 9 Dez. 2022
Verschoben: Voss am 9 Dez. 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Voss
Voss am 9 Dez. 2022
Bearbeitet: Voss am 9 Dez. 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 Kommentare
yousef Yousef
yousef Yousef am 9 Dez. 2022
Perfect. Appreciated. Thank you
Voss
Voss am 9 Dez. 2022
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by