修改这段代码为函数:originalFile_path = 'E:\MATLAB\bin\my_MATLAB_Doc\img\batchOperation\Before'; % 原始的图像文件夹路径 reviseFile_path = 'E:\MATLAB\bin\my_MATLAB_Doc\img\batchOperation\after'; % 批处理后的图像文件夹路径 allFileInfo=dir(originalFile_path) [fileNum tmp1]=size(allFileInfo); string fileType; for i=1:fileNum allFileName(i)=string(allFileInfo(i).name) [splitAfter tmp2]=split(allFileName(i),"."); %取出 文件类型 的字符 type=char(splitAfter(2,1)) [tem2 tmp3]=size(type) if tmp3<=1 %可能会出现因此文件 造成程序瘫痪 continue; else newDir=strcat(reviseFile_path,'\',splitAfter(2)) %newDir创建需要分类的文件夹的路径 mkdir(newDir) source=strcat(originalFile_path,'\',allFileName(i)) %源文件路径 destination=strcat(newDir,'\',allFileName(i)) %目标文件路径 movefile(source,destination); % 移动 end end
时间: 2024-03-16 17:41:38 浏览: 15
可以将这段代码封装成一个函数,函数的输入参数为原始的图像文件夹路径和批处理后的图像文件夹路径,输出参数为处理后的图像文件夹路径下的所有文件名。代码如下:
```matlab
function allFileName = batchOperation(originalFile_path, reviseFile_path)
allFileInfo = dir(originalFile_path);
[fileNum, ~] = size(allFileInfo);
allFileName = strings(1, fileNum);
for i = 1:fileNum
allFileName(i) = string(allFileInfo(i).name);
[splitAfter, ~] = split(allFileName(i), ".");
type = char(splitAfter(2, 1));
[tem2, tmp3] = size(type);
if tmp3 <= 1
continue;
else
newDir = strcat(reviseFile_path, '\', splitAfter(2));
mkdir(newDir);
source = strcat(originalFile_path, '\', allFileName(i));
destination = strcat(newDir, '\', allFileName(i));
movefile(source, destination);
end
end
end
```
调用该函数的方式为:
```matlab
allFileName = batchOperation('E:\MATLAB\bin\my_MATLAB_Doc\img\batchOperation\Before', 'E:\MATLAB\bin\my_MATLAB_Doc\img\batchOperation\after');
```