# MATLAB数据管理代码
## 介绍
自定义用于读取matlab数据的类,仿照pytorch设计
## 软件需求
### 数据库类
不论什么样的数据格式输入,都有同一的数据输出接口。包括对数据和对应标签的索引;数据总长度;
目前输入数据类型有两种:
- 一种是一类数据都保存在一个mat文件中,文件名是数据的label;
- 另外一种是每个样本保存为一个mat文件,所有相同label的文件保存在一个用label命名的文件夹中。
### 数据管理类
以数据库类为输入,可以按照要求输出批量数据:
- 自定义批量大小
- 自定义是否打乱数据
- 查询数据输出是否结束
- 查询批数据个数
## 软件架构设计
### 数据库类函数
#### MatDataSet
MatDataSet类继承自handle基类。可以实现的功能有:
- 给定文件夹路径,读取文件夹内所有的mat文件,并且提取文件名、文件路径、进行one-hot编码;
- 默认提取所有mat文件,也可以指定mat文件;
- 可以对数据索引;
- 可以计算样本个数;
- 可以对数据可视化
(1) properties
- public
- file_info
- selected_matfile
- data
- label
- private
- trans_len
(2) methods
- get_item():
- len():
- plot()
> Class: obj = MatDataSet(file_path, 'selected_file', [ ], 'trans_len', 0)
---
提取给定文件夹下的指定文件,构成一个数据集。
参数:
- file_path (str) - 存放所有mat文件的文件夹
- selected_file (string array, string) - 需要使用的数据的名称(一定要与file_path下文件名相同,但是不需要后缀)
- trans_len (int) - 读取样本随机平移量,默认为0,样本不平移。
输出:
MatDataSet对象
> func: [x, y] = get_item(obj, index)
---
对数据集中的数据进行索引。
参数:
- obj - MatDataSet对象
- index (int or int vector) - 索引值
输出 :
- x - HRRP,第一个维度是距离,第二维度是极化通道,第三个维度是HRRP序号。
- y - 样本标签,第一个维度是HRRP序号,第二个维度是编码。
> func: L = len(obj)
---
计算数据集中样本数量。
> func: plot(obj, index)
---
绘制数据集中index对应样本的HRRP。
### 数据库管理类函数
#### MatDataLoader
从DataSet类中,按照一定批大小,读取数据。需要实现的功能有:
- 读取批量数据
- 打乱数据
properties
- shuffle
- batch_size
- drop_last
methods
- read()