Compose two vectors from one vector with step

2 vues (au cours des 30 derniers jours)
yousef Yousef
yousef Yousef le 9 Déc 2022
Commenté : Voss le 9 Déc 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 commentaire
yousef Yousef
yousef Yousef le 9 Déc 2022
Déplacé(e) : Voss le 9 Déc 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

Connectez-vous pour commenter.

Réponse acceptée

Voss
Voss le 9 Déc 2022
Modifié(e) : Voss le 9 Déc 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 commentaires
yousef Yousef
yousef Yousef le 9 Déc 2022
Perfect. Appreciated. Thank you
Voss
Voss le 9 Déc 2022
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur RF Blockset Models for Transceivers dans Help Center 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