Save data with different intervals?

6 次查看(过去 30 天)
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 个评论
Yazan
Yazan 2021-8-8
编辑:Yazan 2021-8-8
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;

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2021-8-8
编辑:Walter Roberson 2021-8-8
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, []);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by