Array concatenation based on condition.
1 次查看(过去 30 天)
显示 更早的评论
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, sample+300, sample+400 sample+500th elements 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.
Now I have an added condition to this problem : 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, sample+300th element, sample+400th element, sample+500th element to my new array.
If one of the (sample+100th element, sample+200th element, sample+300th element, sample+400th element, sample+500th element) in the same order are different from any of the previous samples by 10, then I have to add the next 5 samples to the array. For eg : if (sample+300)-(sample+100)>10, then the new array becomes [output, sample+100, sample+200, sample+300,sample+400,sample+500,sample+600,sample+700,sample+800];
eg2 : if ((sample+500)-(sample+200)>10), then the new array becomes [output, sample+100, sample+200, sample+300, sample+400,sample+500,sample+600,sample+700,sample+800,sample+900,sample+1000];
This should continue inside a loop.
What I have now is this :
for i = 6000 : 3000 : length(YourVector)
if abs(YourVector(i) - YourVector(i-3000)) > 10
output = [output, YourVector(i+[0 100 200 300 400 500])];
if abs(YourVector(i+100) - YourVector(i+500)) > 10
output = [output, YourVector(i+[0 600 700 800 900 1000])];
end
else
output = [output, YourVector(i)];
end
I am only able to compare the extreme elements for this, not any of the intermediate elements. Note : This is in continuation to a previous question posted here : https://www.mathworks.com/matlabcentral/answers/374580-increment-loop-index-based-on-a-condition
Any help is appreciated.
Thanks.
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multidimensional Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!