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

看前面关于CWRU数据的博客,大家讨论的如此热烈,这里我就再分享一个可以批量处理凯斯西储大学轴承数据的方法(MATLAB实现)!
经过整理,官网上的数据大概如下:
凯斯西储大学轴承数据集批量处理方法
文章图片

其中每个文件夹均有各自状态下的数据集,如下:
凯斯西储大学轴承数据集批量处理方法
文章图片

这里我们在MATLAB中随意打开一个文件康康它长什么样子。哦,大概是这个鬼样子
凯斯西储大学轴承数据集批量处理方法
文章图片

那么问题来了,如何仅仅提取我们需要的某一类数据呢?
好!如果你需要驱动端(DE)的数据,那你只需要X118_DE_time这个变量下的数据即可。
所以接下来就步入正题(前面也许是废话,凑字数)!
**整体思路如下:

  1. 首先把你的数据文件都放在同一文件夹下,然后读取该文件夹。
  2. 获取每一个文件的名字,并读取文件
  3. 获取文件中的变量名,并找到你想要的那个X118_DE_time
  4. 读取数据,写入新的文件**
啥也不说了,直接上代码
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 = https://www.it610.com/article/load(file_route); % 加载文件 fieldsname = fields(data); % 这里data是结构体变量,获取文件的结构体变量名 for j = 1:length(fieldsname)% 依次加载变量名 % 将结构体成员由元胞数组转换成字符串格式 var_name = cell2mat(fieldsname(j)); if length(var_name) < 6% 匹配后7位是否满足条件 continue elseif (strcmp(var_name(end-6:end),'DE_time'))%根据变量名后几位匹配 value = https://www.it610.com/article/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文件 break end end end

【凯斯西储大学轴承数据集批量处理方法】好了,然后打开你的文件夹,一群热乎的数据就提取出来了!
这么详细的注释笔者怕不是个傻子,溜了
后续操作见:
https://blog.csdn.net/qq_41687512/article/details/102917300

    推荐阅读