how to delete adjacent entries from an array
이전 댓글 표시
Hallo,
I have a long column vector A (say 30000x1) with values 1 to 100 and I want not only to delete all entries equal to the number 60 (which I can do with B= A(A~=60), but all 50 elements immediately next to 60 (previous and next, in total 100). The elements in A are randomly positioned , so some times the deleted values may 'overlap'. Do you know how I can do this?
Thank you
채택된 답변
추가 답변 (1개)
Andrei Bobrov
2014년 2월 13일
편집: Andrei Bobrov
2014년 2월 13일
ii = unique(bsxfun(@plus,find(A == 60),[-1 0 1]));
out = A;
out(ii(ii > 0 & ii <= numel(A))) = [];
way with Image Processing Toolbox
out = A(imerode(A ~= 60,[1;1;1]));
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!