我有顺序文件,例如:
hi_0001.edf
hi_0002.edf
hi_0003.edf
hi_0004.edf
我想重命名它们加上相反的方向(从头到尾开始),以便:
“hi_ 0001 .edf”变为“hello_ 0004 .edf”
“hi_ 0002 .edf”变为“hello_ 0003 .edf”
“hi_ 0003 .edf”变为“hello_ 0002 .edf”
“hi_ 0004 .edf”变为“hello_ 0001 .edf”
我有以下程序可以重命名文件但给它们相同的数字(从头到尾):
%//' Directory where TIFF images are present
directory = 'C:\Users\opd28\Desktop\folder\';
%//' files pattern with absolute paths
filePattern = fullfile(directory, 'hi_*.edf');
%// Get the filenames
old_filename = cellstr(ls(filePattern)) ;
%// Get numbers associated with each file
file_ID = strrep(strrep(old_filename,'hi_',''),'.edf','');
file_ID_doublearr = str2double(file_ID);
file_ID_doublearr = file_ID_doublearr - min(file_ID_doublearr)+1;
file_ID = strtrim(cellstr(num2str(file_ID_doublearr)));
%// Get zeros string to be pre-appended to each filename
str_zeros = arrayfun(@(t) repmat('0',1,t),4-cellfun(@numel,file_ID),'uni',0) ;
%// Generate new filenames
new_filename = strcat('hello_',str_zeros,file_ID,'.edf') ;
%// Finally rename files with the absolute paths
cellfun(@(m1,m2)movefile(m1,m2),fullfile(directory,old_filename),fullfile(directory,new_filename)) ;
上面的代码生成以下内容:
“hi_ 0001 .edf”变为“hello_ 0001 .edf”
“hi_ 0002 .edf”变为“hello_ 0002 .edf”
“hi_ 0003 .edf”变为“hello_ 0003 .edf”
“hi_ 0004 .edf”变为“hello_ 0004 .edf”
我需要添加什么才能使新文件名从头到尾开始。
答案 0 :(得分:0)
您可以flip Predicates
变量,并且您已拥有它。
file_ID_doublearr
现在您可以完成脚本的其余部分,文件名应该从4到1进行排序。
我想这是您尝试更改数字的行:
file_ID_doublearr = str2double(file_ID);
file_ID = file_ID_doublearr(end:-1:1); % or 'flipud' / 'fliplr'
如果您执行了以下操作之一,那就可以了:
file_ID_doublearr = max(file_ID_doublearr) - file_ID_doublearr + 1;
或
file_ID_doublearr = file_ID_doublearr - min(file_ID_doublearr)+1;
注意,我这里没有MATLAB,但我无法想象这不起作用。如果出现错误,请告诉我。