前言
最近在处理数据的时候,遇到了一个关键问题,如何从众多的同类型文件中筛选指定名称的文件到另一文件下,比如我现在有按照时间序列生成的2000-2020若干天的tif数据,但我想把每年的天数据放到一个年份文件夹下。比如2000年的天数据放到2000的文件夹下。如果是小时呢?如果时间序列更长怎么办?手动此时不如放弃不做了。
电脑是个好东西,这里会用到MATLAB生成指定文件名和文件夹,以及采用dos命令来批量分配,笔者亲身试验,比各位一个一个筛选省去至少若干天的时间。
二、具体步骤
首先要生成可以读取的txt文件,这个文件中是要筛选的文件名,当然程序是针对有规律命名的文件,没有规律的可以先将需要的名称找出来,存成txt,有也可以批量改文件名,让他们有规律。然后开始按照年循环将需要的文件筛选出来,然后生成对应分组的空文件夹。
1.数据准备
clc;
clear;
close all;
% 定义路径
base_dir = 'H:\';
% 定义年份
for yyear = 2000:1:2020
% 构建动态的 imgdir
imgdir = fullfile(base_dir, num2str(yyear), filesep);
filenames=dir([imgdir '*.tif']);
days=[];
for ii=1:numel(filenames)
name=filenames(ii).name;
day=name(end-7:end-4);
days=