凯斯西储大学轴承数据集批量处理方法

看前面关于CWRU数据的博客,大家讨论的如此热烈,这里我就再分享一个可以批量处理凯斯西储大学轴承数据的方法(实现)!
经过整理,官网上的数据大概如下:
其中每个文件夹均有各自状态下的数据集,如下:
这里我们在中随意打开一个文件康康它长什么样子 。哦,大概是这个鬼样子
【凯斯西储大学轴承数据集批量处理方法】

凯斯西储大学轴承数据集批量处理方法

文章插图
那么问题来了,如何仅仅提取我们需要的某一类数据呢?
好!如果你需要驱动端(DE)的数据,那你只需要这个变量下的数据即可 。
所以接下来就步入正题(前面也许是废话,凑字数)!
**整体思路如下:
首先把你的数据文件都放在同一文件夹下,然后读取该文件夹 。获取每一个文件的名字,并读取文件获取文件中的变量名,并找到你想要的那个读取数据,写入新的文件**
啥也不说了,直接上代码
namelist = dir('文件夹位置\*.mat');% 这里会返回name、date、bytes等参数len = length(namelist);% 得到共有多少个文件for i = 1:len% 依次加载文件file_name = namelist(i).name;% 读取文件名route = '文件夹位置';file_route = strcat(route, file_name);% 地址组合data = http://www.kingceram.com/post/load(file_route);% 加载文件fieldsname = fields(data); % 这里data是结构体变量,获取文件的结构体变量名for j = 1:length(fieldsname)% 依次加载变量名% 将结构体成员由元胞数组转换成字符串格式var_name = cell2mat(fieldsname(j));if length(var_name) < 6% 匹配后7位是否满足条件continueelseif (strcmp(var_name(end-6:end), 'DE_time'))%根据变量名后几位匹配value = getfield(data,var_name);% 读取满足条件的变量值suffix = char('.txt');% 将文件名和后缀组合起来new_file_name = strcat(file_name(1:end-4), suffix);new_file_route = strcat(route, new_file_name);dlmwrite(new_file_route,value,'newline','pc');% 写入TXT文件breakendendend
好了,然后打开你的文件夹,一群热乎的数据就提取出来了!
这么详细的注释笔者怕不是个傻子,溜了
后续操作见: