Matlab重命名和剪切,movefile是大坑

一直用movefile重命名的总是觉得有点不对,

明明只是按一下F2然后粘贴一个文件名过去,

电脑居然干得比我还慢,

今天终于找到原因了。。。


movefile函数实际上干的是用新文件名复制一遍文件,然后把旧的再删了。。。。

所以用这个做重命名在文件特别多数据量特别大的时候其实是非常非常慢的。。。。


下面是推荐的用法,windows系统中可以用的rename函数(linux里也有对应的函数,用法稍有不同)


下面是一个例子和所需时间,文件夹里面一共64个文件1.95GB

cd C:\Users\lalala\lalala
aa = ls('*.nii');
for n = 1:size(aa,1)
%     movefile(aa(n,:),sprintf('%05d.nii',n));
    system(['rename',32,aa(n,:),32,sprintf('%02d.nii',n)]);
end


注:

图中的rename是matlab脚本的文件名,第一张图为windows自带rename用时,第二张图是matlab的movefile用时

文件夹里文件和大小都减小一半的时候耗时也都减小一半左右。。

Matlab重命名和剪切,movefile是大坑_第1张图片Matlab重命名和剪切,movefile是大坑_第2张图片

你可能感兴趣的:(matlab)