我有一個矢量,我想將其分割成大小爲cs
的重疊子矢量,換算爲sh
。想象中的輸入向量爲:matlab:將矢量劃分爲固定大小的重疊塊
v=[1 2 3 4 5 6 7 8 9 10 11 12 13]; % A=[1:13]
給出的2(sh=2
)4(cs=4
)和換檔的chunksize
,結果應該是這樣的:
[1 2 3 4]
[3 4 5 6]
[5 6 7 8]
[7 8 9 10]
[9 10 11 12]
注意,輸入矢量不一定被chunksize
整除,因此一些子向量被丟棄。有沒有什麼快速的方法來計算,而不需要使用例如一個for
循環? 在相關的post我發現如何做到這一點,但在考慮非重疊子向量時。
我爲什麼要?它也適用於不同的數字。 'idx'只應該給我的子向量的起始索引,因此,我def。需要cs-sh作爲步驟 - 編輯:我嘗試使用不同的向量和不同數量的'cs'和'sh',它的工作原理非常好。 – tim
對於'cs = 5;我假設起始索引是「1 4 7」而不是「1 3 5 7」。如果是這種情況,可以使用'idx = 1:sh:length(v)'。 –
對不起,但我必須告訴你,那是錯誤的。只要重新考慮一下。 '1 3 5 7'是正確的索引 - 只要看看我的輸出矩陣顯然是正確的(長度爲5(即5列),你可以清楚地看到,這是塊大小cs = 5)和三個重疊條目每行的最後三個條目是下一行的三個第一條目) – tim