2016-10-29 126 views
0

我是matlab新手,我写了一个代码实现图像处理的gamma函数。我生成了大约300张名为'001.jpg'到'300.jpg'的照片,然后使用ffmpeg制作视频。 最后,我只需要视频结果,并需要一个命令来删除目录中生成的所有照片!有没有办法做到这一点?在matlab目录中删除带有编号名称的文件

回答

1

如果你想删除当前目录下的所有.jpg文件,您可以使用delete命令用通配符(*

delete('*.jpg') 

如果文件过的文件夹中比当前目录以外,你可以以这种方式指定目录。

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

如果你想将其限制在只是文件具有数字的文件名,你可以不喜欢以下

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

delete(filenames{:}) 
+0

如果我的文件夹中没有其他图片,'delete('*。jpg')'会工作得很好!但正则表达式完美,谢谢你。你能解释第二行中的'match'和'once'是什么吗? –

+0

@AlalehA这只是使它,如果它匹配,它会返回匹配(文件名),这样'filenames'是一个单元格数组包含要删除的文件名 – Suever

0

添加到Suever的回答(不允许尚未就此发表评论):
假设你已经知道你正在创建的图像的名字,你可以保存你的脚本到文件夹的“旅行”,然后自己创建文件名列表:

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

delete(filenames{:}) 
相关问题