我有一個大小爲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]等等...將數據集劃分爲大小爲n的分箱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]等等...將數據集劃分爲大小爲n的分箱matlab
任何幫助將不勝感激。
這實際上取決於你打算如何「分析」你的數據。最簡單的方法是使用一個循環:
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}=...
我認爲你正在尋找'reshape'命令,它將允許你將你的向量重塑成矩陣(記住用零填充你的向量或截斷以確保該矩陣將適合)。 – GameOfThrows
我試圖重塑,它給出了一個錯誤,說數據不應該有小數,我使用的數據有點像0.2,0.1等等 – DashD
重塑做小數,也許你沒有填充你的載體?看看丹的回答,他已涵蓋:D – GameOfThrows