我有很多看起来像这样的文件:
imgDATA_subj001_log000_sess001_at.img
imgDATA_subj001_log000_sess001_cn.img
imgDATA_subj001_log000_sess001_cx.img
imgDATA_subj001_log000_sess002_at.img
imgDATA_subj001_log000_sess002_cn.img
imgDATA_subj001_log000_sess002_cx.img
imgDATA_subj002_log000_sess001_at.img
...
我想在 subj 之后重命名文件名的特定数字部分。例如,subj001,subj002,subj003等将被重命名为subj014,subj027,subj65等,但保留文件名的其余部分。我有新名称列表,但不知道如何查找旧名称并与新名称匹配,然后重命名。我尝试使用循环和fileparts
,但我不知道如何隔离subj ***组件。我可以做move
但这样效率很低。有人可以帮忙吗?
答案 0 :(得分:0)
如果您知道要特别替换的文件名部分,即您知道subj001 = subj014,那么您应该使用dir命令获取现有目录中的文件列表。 这将为您提供文件列表
f=dir(imgData*.img)
for somecounter=1:length(f)
filename=f(somecounter).name
newname=strrep(filename,'subj001','subj014')
movefile(filename,newname)
end
显然,您希望设置每个单独名称的数组以匹配并迭代。