我是信號處理領域的法國學生工程師,我在神經科學實驗室做實習。我必須藉助Matlab來處理大腦活動中的大量數據,因此我的主要任務之一是優化代碼。但是現在我陷入了一種無法解決的狀況,並且在網絡上找不到任何有關它的情況。我解釋我的問題:切斷信號(相互連接)並計算這些部分
例如矩陣A:
a = [ 1 2 3 4 5; 6 7 8 9 10;11 12 13 14 15]
每一行是一個信號的DATAS(所以在這裏我們有3個信號),我想,每個信號/行,切blcoks中的矢量鏈接的長度相同。
例如對於信號1,S1 = [1 2 3 4 5]
我想提取塊S1_1 = [1 2 3], S1_2 = [2 3 4], and S1_3 = [3 4 5]
並計算每個子塊。
我的第一個想法是使用嵌套循環這樣的:
[nrow ncol] = size(a);
for i = 1 : nrow
for j = 4 : ncol
sub_block = a(i, (j-3):j);
result(i, j-3) = compute(sub_block);
end
end
但正如我說我必須處理大量的DATAS的,所以我想避免的for循環。我正在尋找一種算法,這將能夠刪除這些for-loop,但我不知道該怎麼辦...
我看到了函數'reshape',但是這個給我的子塊如: S1_1 = [1 2 3], S1_2 = [4 5 6]
我不能使用它,因爲這裏在子塊S1_2我有信號1和信號2的數據。
然後我看到函數'blockproc',但我真的不明白它是如何處理我並不真的說這個人可以幫我...
所以,我希望你明白我的問題,並且你可以幫助我或指示我找到一種解決方案。