一个简单的例子:
# data: 这是要应用滑动窗口采样的输入数据,通常是一个序列,例如列表或NumPy数组。
# window_size: 这是滑动窗口的大小,表示每个窗口中包含的元素数量。
# step_size: 这是滑动窗口移动的步长,表示每次滑动窗口向前移动的元素数量。
# range(起始位置,结束位置,步长)
def sliding_window(data, window_size, step_size):
for i in range(0, len(data) - window_size + 1, step_size):
yield data[i:i + window_size]
# 示例数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 定义窗口大小和步长
window_size = 3
step_size = 2
# 使用滑动窗口采样数据
for window in sliding_window(data, window_size, step_size):
print(window)
创建mat数据,并利用滑动窗口采样:
import numpy as np
import scipy.io
# 生成示例数据
sample_data = np.arange(1, 21).reshape(10, 2) # 创建一个10x2的示例数据
# 保存数据为MAT文件
scipy.io.savemat('sample_data.mat', {'data': sample_data})
# 加载MAT文件
mat_data = scipy.io.loadmat('sample_data.mat')
data = mat_data['data']
# 定义滑动窗口函数
def sliding_window(data, window_size, step_size):
for i in range(0, data.shape[0] - window_size + 1, step_size):
yield data[i:i + window_size, :]
# 定义窗口大小和步长
window_size = 3
step_size = 2
# 使用滑动窗口采样数据
for window in sliding_window(data, window_size, step_size):
print(window)