Save data with different intervals?

5 vues (au cours des 30 derniers jours)
riccardo favaro
riccardo favaro le 8 Août 2021
Modifié(e) : Yazan le 8 Août 2021
I have an array of data and I need to discard the first 7 values, save 15 values and discard other 7 values and keep going until the end of the array.
What is the easiest way to do it? I've tried with a for loop but I don't know how to set the index.
Also, if i want to, let's say, add or subtract a points every 4 repetitions how could I do it? So after 4 times I discard 7 values and save the following 16 values.
Thanks in advance if someone will help me, I'm very stucked.
  1 commentaire
Yazan
Yazan le 8 Août 2021
Modifié(e) : Yazan le 8 Août 2021
Below, j1 and j2 are the first and last indexes, respectively, of the data you need to save.
todiscard = 7;
tokeep = 15;
j1 = todiscard+1:tokeep:length(data)-tokeep;
j2 = j1 + tokeep-1;

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 8 Août 2021
Modifié(e) : Walter Roberson le 8 Août 2021
temp = reshape(YourVector, 7+15, []);
to_save = reshape(temp(8:end,:), 1, []);
So after 4 times I discard 7 values and save the following 16 values.
temp = reshape(YourVector, 7+15+7+15+7+15+7+16, []);
temp([22*0+(1:7), 22*1+(1:7), 22*2+(1:7), 22*3+(1:7)],:) = [];
to_save = reshape(temp, 1, []);

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by