自用-matlab复制文件到对应文件夹

本文介绍了如何使用MATLAB编写代码来实现批量复制文件到指定的文件夹结构中,包括遍历源文件夹、新建目标文件夹以及进行多次复制操作。通过在代码中使用fprintf进行检查,确保复制过程无误,提高效率。
摘要由CSDN通过智能技术生成


这个代码主要解决的是构建5折交叉验证数据集,使之更自动,保护眼睛,保护脑细胞,自用为主。

1.需求

我现在有一个文件夹5折交叉验证数据集,太长了简称为a好了。。。里面有5个文件夹,image0,image1…每个文件夹下有8个类别 class1,class2,class3…需要把类别中的文件都复制到一个目标文件夹b,这个文件夹是这样的,有5个子文件夹,命名为01234,(就是第几折),每个文件夹下又分成2个子文件夹train,test,每个train文件夹下有8个类,就是a那边的8个类,

a和b的关系就是:
0的测试集(即test)就是image00的训练集(即train)就是image1,image2,image3,image4;
1的测试集(即test)就是image11的训练集(即train)就是image0,image2,image3,image4;
2的测试集(即test)就是image22的训练集(即train)就是image0,image1,image3,image4;
3的测试集(即test)就是image33的训练集(即train)就是image0,image1,image2,image4;
4的测试集(即test)就是image44的训练集(即train)就是image0,image1,image2,image3;

在这里插入图片描述

在这里插入图片描述
因为怕错,所以用手动的方法,结果当时花了40分钟,就是手动把每个类的东西全选然后复制1次,粘贴5次到不同的地方,我分神了,反正一共粘贴了200次。。。,于是搞好了很久之后,决定搞个代码,万一下次数据集更大怎么办,还是让电脑来吧

2.思路

2.1 复制的基础功能

先搞定简单的复制,参考这篇博客https://blog.csdn.net/YeziTong/article/details/84942629

sourcePath = '.\Square_train';  
targetPath = '.\Square_test';  
 
fileList = dir(sourcePath);  
  
for k = 3 :5: length(fileList)  
    movefile([sourcePath,'\',fileList(k).name],targetPath);
end 
 
%copyfile([sourcePath,'\',fileList(k).name],targetPath)

我用到的是原博主注释掉的copyfile,(复制功能),for循环对我意义不大,因为实现的功能不一样,感谢博主染血白衣

2.2遍历源文件夹

然后实现对原始文件下a的文件遍历,受第一步的启发,其实就是不断地取出对应路径,再拼接起来,主要注意for循环的起点,对于如果读出来的内容是文件夹的话,从3开始,如果读出的内容全是文件的话,从1开始。

2.3 新建目的文件夹

构建新的文件夹b,(全空,没有文件),主要使用mkdir函数,class1,class2的名字我在2.遍历源文件夹a的时候自动获取了,感觉这样会比较方便,当然可能并不。。。

2.4 每个文件复制5次

把文件一个一个复制到文件夹b的对应位置中,其实就是再次遍历原始文件夹a,然后对里面的每个文件进行5次复制,根据它的具体情况,把它复制到不同的地方。

2.5 要多用fprintf来检查是不是有问题!

3.代码

% 用于复制文件夹下的文件,人力复制粘贴可能总的要花1小时
% demo里面的代码是有个遍历源文件夹的过程,demo1的代码没有遍历源文件夹的过程
tic
clc
clear all


sourcePath_root = 'G:\数据集\5折交叉验证数据集'; %数据可用


targetPath_root = 'G:\数据集\无需人为复制粘贴5折交叉验证数据集';  
count=
  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值