将数据集划分为大小为n matlab

时间:2016-04-25 11:06:34

标签: arrays matlab

我有一个大小为11490x1的数据集。每0.25秒记录一次数据(即4hz)。因此,1秒占4个数据点。这里的目标是每3秒进一步创建一个子集,这意味着我想每隔3秒查看一次数据并进行分析。例如:如果我有[1 2 3 4 5 6 8 2 4 2 4 3 2 4 2 5 2 5 24 2 5 1 5 1]等数据,我想要一个子集[1 2 3 4 5 6 8 2 4 2 4 3]等等......

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

这实际上取决于你计划如何分析"你的数据。最简单的方法是使用循环:

n = 4*3;
breaks = 0:n:numel(data)
for i = 1:numel(breaks)-1
    sub = data(breaks(i)+1:breaks(i+1));
    %// do analysis
    %// OR sub{i} = data(breaks(i)+1:breaks(i+1));
end

在填充reshape(data,[],12)之后,向量化方法可能会使用data,以便mod(numel(data),12)==0

第三种方法可能是使用mat2cell或在上面的for循环中将矩阵分解为单元格数组,而不是sub=...而是使用sub{i}=...

相关问题