2016-10-29 7 views
0

저는 matlab에 익숙하지 않아 이미지 처리를위한 감마 함수를 구현 한 코드를 작성했습니다. 나는 '300.jpg'에 '001.jpg'라는 약 300 장의 사진을 생성 한 다음 ffmpeg를 사용하여 비디오를 만듭니다. 결국, 나는 단지 비디오 결과가 필요하고 디렉토리에서 생성 된 모든 사진을 삭제하는 명령이 필요합니다! 그것을 할 수있는 방법이 있습니까? 현재 디렉토리에있는 모든 .jpg 파일을 제거하려면 파일을 폴더에 현재 디렉토리가 아닌 다른 사는 경우matlab 디렉토리의 번호가 매겨진 이름의 파일을 삭제하십시오.

답변

1

당신은 당신이 할 수있는 와일드 카드 (*)

delete('*.jpg') 

으로 delete 명령을 사용할 수 있습니다 이 방법으로 디렉토리를 지정하십시오.

folder = '/path/to/my/files'; 
delete(fullfile(folder, '*.jpg')) 

는 당신이 에 숫자 파일 이름이 단지 파일을 제한하려면, 다음과 같은

Suever의 대답에 추가
files = dir('*.jpg'); 
filenames = regexp({files.name}, '^[0-9]+\.jpg$', 'match', 'once'); 
filenames = cellstr(cat(1, filenames{:})); 

delete(filenames{:}) 
+0

내 폴더에 다른 사진이 없으면'delete ('* .jpg')'가 정상적으로 작동합니다! 하지만 정규식은 완벽하게 작동했습니다. 감사합니다. 두 번째 줄에서''일치 '와''한 번''무엇을 할 수 있습니까? –

+0

@AlalehA 그러면 일치하는 경우 일치 항목 (파일 이름)이 반환되므로 'filenames'는 제거 할 파일 이름을 포함하는 셀 배열입니다. – Suever

0

같은 것을 할 수있는 (아직 언급 할 수 없습니다) :
작성중인 이미지의 이름을 이미 알고 있다고 가정하면 스크립트 파일을 폴더에 저장 한 다음 직접 파일 이름 목록을 만들어 다시 저장할 수 있습니다.

for i=1:numOfImages 
filenames(i)={strcat(num2str(i),'.jpg')}; 
end 

delete(filenames{:})