码迷,mamicode.com
首页 > 其他好文 > 详细

将根文件夹内的所有子文件夹内的文件进行按比例分类。。。。。by Matlab

时间:2016-08-13 15:45:43      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

之所以写这段代码,是为了分类文件夹内的所有文件,因为做训练用的数据真的太多了,所以,写了一段Matlab,让其自动按比例分类。

main:

 1 %文件夹路径,不同设备,读取字符不同
 2 clear all
 3 clc
 4 
 5 %% 选择要分的文件夹路径/存放路径/文件夹名称
 6 fprintf(选择Train文件夹\r);
 7 pause(2)
 8 path=uigetdir(选择待分析的文件夹);
 9 if path ==0
10     fprintf(取消选择文件夹)
11 end
12 
13 fprintf(选择Val文件夹\r);
14 pause(1)
15 path_new1=uigetdir(Val文件夹);
16 if path_new1 ==0
17     fprintf(取消选择文件夹)
18 end
19 
20 
21 fprintf(选择Test文件夹\r);
22 pause(1)
23 path_new2=uigetdir(Test文件夹);
24 if path_new2 ==0
25     fprintf(取消选择文件夹)
26 end
27 
28 fprintf(选择Little文件夹\r);
29 pause(1)
30 path_new3=uigetdir(Little文件夹);
31 if path_new3 ==0
32     fprintf(取消选择文件夹)
33 end
34 
35 yesornot(path,path_new1,path_new2,path_new3);

yeornot.m:

 1 function yesornot(path,newpath1,newpath2,newpath3)
 2 
 3 file=dir(path);
 4 file_name={file.name};
 5 file_length=length(file_name);
 6 %   10%->Val
 7 num1=ceil(file_length*0.1);
 8 %   20%->Test
 9 num2=ceil(file_length*0.2);
10 k=1;
11 
12 for i=1:file_length
13     
14     if strcmp(file_name{i},.)|| strcmp(file_name{i},..)||strcmp(file_name{i},.DS_Store)
15         continue;
16     end
17     
18     file_new_path=fullfile(path,file_name{i});
19     if exist(file_new_path,dir)==7
20         yesornot(file_new_path,fullfile(newpath1,file_name{i}),fullfile(newpath2,file_name{i}),fullfile(newpath3,file_name{i}));
21     else
22         if num1==num2
23             if exist(newpath3,dir)~=7
24                 mkdir(newpath3);
25             end
26             movefile(path,newpath3);
27             savedata(path,file_length);
28             savemessage(本文件夹内文件较少,文件夹整体移动 出局。);
29             return
30         elseif k<=num1
31             if exist(newpath1,dir)~=7
32                 mkdir(newpath1);
33             end
34             filemove=fullfile(path,file_name{i});
35             saveval(/Users/liyong/Desktop/new/val.txt,file_name{i});
36             movefile(filemove,newpath1);
37             k=k+1;
38             continue
39         elseif k<=num1+num2
40             if exist(newpath2,dir)~=7
41                 mkdir(newpath2);
42             end
43             filemove=fullfile(path,file_name{i});
44             
45             saveval(/Users/liyong/Desktop/new/test.txt,file_name{i});
46             movefile(filemove,newpath2);
47             k=k+1;
48             continue
49         else
50             savedata(path,file_length);
51             return
52         end
53     end   
54 end

其中包含,移动数据保存。

将根文件夹内的所有子文件夹内的文件进行按比例分类。。。。。by Matlab

标签:

原文地址:http://www.cnblogs.com/the-second-coffee/p/5768078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!