У меня проблема с поиском более быстрого способа свертки нескольких векторов. Все векторы имеют одинаковую длину M, поэтому эти векторы могут быть объединены в виде матрицы (A
) с размером (N
, M
). N
- количество векторов.Как ускорить несколько векторных сверток в MATLAB?
Теперь я использую следующий код, чтобы свертку все эти векторы:
B=1;
for i=1:N
B=conv(B, A(i,:));
end
Я нашел этот кусок кода становится ограничение скорости шаг в моей программе, так как она часто называется. Мой вопрос в том, есть ли способ сделать этот расчет быстрее? Рассмотрим M
- небольшое число (скажем 2).
Насколько велика N? Если он большой (скажем, 10000), то ваш вектор B растет со временем, что также замедлит работу. – Lazarus
Для моего приложения N обычно не очень большой (<100), но верно, что B растет со временем. Я пока не знаю, как в этом случае предварительно выделить место для B. – Kanzy