Deleting repeating numbers from array
1 view (last 30 days)
Show older comments
I have a very long array of numbers consisting of 0's and 1's and I would like to delete sections where 0 is consecutively repeated thirty times or more. How would I go about this?
0 Comments
Accepted Answer
Stephen23
on 21 Sep 2018
Edited: Stephen23
on 21 Sep 2018
A = [zeros(1,30),1,1,1,1,zeros(1,29),1,1,zeros(1,30)]; % fake data
Z = +regexprep(char(A),'\0{30,}','')
Method two: diff, find, and a loop:
Z = A;
D = diff([1,Z,1]);
B = find(D<0);
E = find(D>0);
X = find((E-B)>=30);
for k = X(end:-1:1)
Z(B(k):E(k)-1) = [];
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Language Fundamentals 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!