如何在matlab中快速无误地重命名和/或复制大量文件

如何在matlab中快速无误地重命名和/或复制大量文件,matlab,file,copy,rename,Matlab,File,Copy,Rename,我有以下问题。我使用自组织映射对图像进行排序(>20000),并以新的顺序将排序后的图像复制到新文件夹中。事实证明,copyfile的速度非常慢(每秒1张图像),正如我在几篇文章中发现的,没有解决这个问题的方法。所以1。问题是有解决办法吗? 我尝试了另一种方法,现在正在使用以下方法重命名文件: c=1; for i = b file = av_files(i).name; in = strcat(inputdir,'\',file); out =sprintf('%s

我有以下问题。我使用自组织映射对图像进行排序(>20000),并以新的顺序将排序后的图像复制到新文件夹中。事实证明,copyfile的速度非常慢(每秒1张图像),正如我在几篇文章中发现的,没有解决这个问题的方法。所以1。问题是有解决办法吗? 我尝试了另一种方法,现在正在使用以下方法重命名文件:

c=1;
for i = b
    file = av_files(i).name;
    in  = strcat(inputdir,'\',file);
    out  =sprintf('%s\\%0.5i_%s',inputdir,c,file);
    java.io.File(in).renameTo(java.io.File(out));
    c=c+1;
end
现在我得到了错误

Static method or constructor invocations cannot be indexed.
问题似乎是我在for循环中使用它,而Matlab不喜欢它。有办法解决这个问题吗? 因此,问题主要是如何在Matlab中快速重命名和/或复制大量文件而不出错


顺便说一句,当抛出错误时,
movefile
相对较慢

什么是
file
in
out
?如果出现错误,可以使用
dbstop检查文件是否包含文件夹中所有文件名的列表。b包含已排序的列表。In是输入路径,out是带有新文件名的输出路径。例如,文件名ist roi1.8499829300.tif和in将是c:\roi1.8499829300.tif out将是c:\00001\U roi1.8499829300.tif错误将直接出现在第一步c=1中。如果我将整个循环复制到工作区(在m文件之外),则在运行脚本之前,它不会出现errortype
dbstop If error
,并验证变量实际上是什么,而不是您认为应该是什么。实际上它是:c=1,file=roi2.852394700.tif,in=C:\train\u sort\roi2.8523947000.tif和out:C:\train\u sort\00001\u roi2.8523947000.tif,它停在java.io.File(in.renameTo(java.io.File(out));当抛出错误时,
文件
之外是什么?如果出现错误,可以使用
dbstop检查文件是否包含文件夹中所有文件名的列表。b包含已排序的列表。In是输入路径,out是带有新文件名的输出路径。例如,文件名ist roi1.8499829300.tif和in将是c:\roi1.8499829300.tif out将是c:\00001\U roi1.8499829300.tif错误将直接出现在第一步c=1中。如果我将整个循环复制到工作区(在m文件之外),则在运行脚本之前,它不会出现errortype
dbstop If error
,并验证变量实际上是什么,而不是您认为应该是什么。实际上它是:c=1,file=roi2.852394700.tif,in=C:\train\u sort\roi2.8523947000.tif和out:C:\train\u sort\00001\u roi2.8523947000.tif,它停在java.io.File(in.renameTo(java.io.File(out));