Increment loop index based on a condition
1 view (last 30 days)
Show older comments
I have an array that has 100000+ values. every 3000th sample to a new array based on a condition.
1. I should compare every 3000th value and see if it differs from the previous 3000th sample by greater than 10. If so, I should add the sample, sample+100th element, sample+200th element to my new array.
2. If not, I should only add the 3000th sample element to my new array and then move to the next 3000th sample.
I have implemented this as an if-else loop inside a for loop. My problem is I am unable to increment the loop index if I first enter the if-loop and then go to the else loop next. I have tried using a while loop instead;however, the while loop executes forever and I don't get any output.
Any help is appreciated.
Thanks.
0 Comments
Accepted Answer
Walter Roberson
on 26 Dec 2017
output = [];
for K = 6000 : 3000 : length(YourVector)
if abs(YourVector(K) - YourVector(K-3000)) > 10
output = [output, YourVector(K+[0 100 200])];
else
output = [output, YourVector(K)];
end
end
More Answers (1)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!