Easy convolution of multiple vectors
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Daniel
el 23 de Sept. de 2014
Comentada: Matt J
el 23 de Sept. de 2014
For the convolution of three vectors I'm doing:
A = [1 2];
B = [3 4];
C = [5 6];
res_aux = conv(A,B);
res = conv(res_aux,C);
Is there an easier way? Something like: res = multiconv({A,B,C})
An alternative would be using cellfun but it's slower.
0 comentarios
Respuesta aceptada
Matt J
el 23 de Sept. de 2014
Editada: Matt J
el 23 de Sept. de 2014
Here's an fft-based approach
data=[1 2;3 4;5 6].';
n=(size(data,1)-1)*size(data,2)+1;
result = ifft(prod(fft(data,n),2),'symmetric')
2 comentarios
Matt J
el 23 de Sept. de 2014
OK. I'm not sure it's faster/more efficient than a plain for-loop, though. It involves complex-valued arithmetic and probably about 4 times more memory consumption.
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!