凯斯西储大学轴承数据集批量处理方法
看前面关于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 = 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文件breakendend
end
好了,然后打开你的文件夹,一群热乎的数据就提取出来了!
这么详细的注释笔者怕不是个傻子,溜了
后续操作见:
tags:
轴承