比方說,我們有一個「狄拉克梳」這給一些「模式」的開始位置:插入小矢量成一個較大的
N_pattern = 5; pattern = rand(1,N_pattern);
N = 100; dirac_comb = zeros(1, N);
idx = [1 20 50 80]; % let's say we want four occurrences of the pattern inside the final_vector
dirac_comb (idx) = 1; % let's say this the comb with the positions of patterns
所有我想要做的是插入「模式」矢量在狄拉克梳子指示的位置上。通常情況下,這可以通過卷積來完成:
final_vector = conv(dirac_comb, pattern);
我不想因爲我用非常大的載體,因此它是非常緩慢的使用卷積。 Dirac梳子在這個問題中的存在有點被迫,idx
變量可能足以解決這個問題。
第一個問題:如何插入在final_vect
在由idx
指示的位置的「模式」,以量化的方式。
第二個問題:比方說,我們隨機化了模式的位置idx
,所以有可能兩個模式相交。如果發生這種情況,我必須總結這兩種模式(交叉區域)。
idx = randi([1 N-N_pattern],[1, 8]); % lets' say we have 8 occurrences
應該有可能考慮到這個總結,但以矢量化的方式嗎?
關於第二個問題:這不是微不足道的,不是嗎?如果你在你的Dirac中梳理了兩個相鄰的'1',你就可以將這個模式相鄰兩次。爲了有重疊,你必須逐個包含模式,所以你必須爲擴展的部分處理的'final_vector'生成每個新的'idx'。這不正確嗎? –
如果我理解@andras的問題,問題是一次包含所有模式。 –