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?

 채택된 답변

Stephen23
Stephen23 2018년 9월 21일
편집: Stephen23 2018년 9월 21일

0 개 추천

Method one: regexprep:
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개)

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

질문:

2018년 9월 21일

편집:

2018년 9월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by