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

之所以写这段代码,是为了分类文件夹内的所有文件,因为做训练用的数据真的太多了,所以,写了一段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

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

时间: 2024-08-10 17:03:17

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

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu

监听Documents文件夹内文件发生改变

// 当Documents内文件发生改变时,启动计时器,每秒计算一次大小,当大小不发生改变时说明传输完毕,就开始刷新. @property (nonatomic, strong) NSTimer *timer; // 原Documents内文件大小 @property (nonatomic, assign) NSInteger filesSize; // Documents内文件改变后的大小 @property (nonatomic, assign) NSInteger foundSize; -

简单的批量提取文件夹内文件名的经典方法

一个文件夹下面有很多文件,如果要批量提取文件夹内所有文件名,知道如何操作吗? 比如,笔者电脑里面E盘文件夹下面有一个“4.2函数经典再现”的文件夹,想将这个文件夹下面的所有文件名批量提取到一个记事本文件里面. 如果你也想批量提取文件名(批量获取一个文件夹内所有文件的文件名),可以按下面的步骤进行. 第一步,新建一个txt格式的记事本文件. 第二步,在记事本文件中输入:DIR *.*  /B >LIST.TXT 第三步,将此记事本文件后辍名,由txt改为bat.会弹出重命名对话框,单击“是”. 第

Linux批量替换文本,文件夹内所有文本内容

1.替换文件夹内所有文件匹配的字符串 sed -i "s/旧内容/新内容/g" `grep 旧内容 -rl 文件夹路径` 例如将/var/www/test文件夹下的所有文件内容中的abc字符串换成123 sed -i "s/abc/123/g" `grep abc -rl /var/www/test` 注:grep内容用的不是单引号',而是`,tab键上面的,请使用绝对路径 2.替换文件内所有匹配的字符串 sed -i "s/旧内容/新内容/g"

如何让文件夹内所有文件名显示在一个Excel文件

如何让文件夹内所有文件名显示在一个Excel文件 我们如何才能做到,让某个文件夹内的所有文件的名称,自动生成一个Excel文件或TXT记事本文件: 意思就是说,文件夹内的所有的文件的名称,自动显示在Excel单元格中或记事本里面. 要想实现这样的功能,非常简单,仅仅使用一个非常简单的DOS命令,就实现了! 方法/步骤 一.所需DOS命令 dir [drive:][path] /b > [drive:][path]filename 二.应用实例 如下图,在D盘中,有一个名称为“TQIPC”的文件夹

iOS imageName方法获取Folder文件夹(蓝色文件夹)内图片

Xcode创建的iOS项目内存在两种文件夹:Group(黄色, 伪文件夹) 和Folder(蓝色, 真文件夹): Group: Folder: Images.xcassets或Group文件夹内的PNG图片可通过imageNamed方法直接加载: [UIImage imageNamed:@"photo"]; Folder文件夹内的PNG图片通过imageNamed方法加载必须拼接文件夹路径, 否则图片无法显示: [UIImage imageNamed:@"Folder/ima

File类——renameTo()将文件夹内的所有指定类型文件 移动到另一个文件夹内

* 由于   张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程 文件夹下 的视频文件都存放在每个子文件夹中 * 需求:将所有视频文件全部移动到  张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程文件夹下  原来存放视频的子文件夹删除 public class moveFiles { public static void main(String[] args) { // TODO Auto-generated method stub File f = new File("D:\\Bai

.NET网站的App_Data文件夹内日志文件无法直接访问解决方案

开发网站的时候,记录下错误以及业务执行日志是非常有必要的.我们使用log4net作为我们的.NET网站的日志记录框架,日志文件格式为.txt,保存在App_Data目录下. 记录下日志后,我们在调试网站的以及检测网站执行进度过程中经常需要对日志进行查看,很古板的方式就是打开网站服务器,进入App_Data文件夹找到日志文件,再用记事本打开,这样查看日志的方式效果特别低,于是便想到直接通过网址访问日志文件,结果发现访问因权限不足被拒绝.网上百度了N种方法,结果发现改文件权限并没有什么卵用. 但是功

g2o20160430下的csparse文件夹内的CMakeLists.txt

1. g2o20160430下的csparse文件夹内的CMakeLists.txt cmake_minimum_required(VERSION 2.6) PROJECT(csparse) SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") #设置 G2O_LGPL_LIB_TYPE STATIC如果想创建静态的csparse库 ADD_LIBRARY(csparse ${G2O_LGPL_LIB_TYPE} cs_add.c cs_amd.c cs_