Convolution of every row in matrix.

7 visualizzazioni (ultimi 30 giorni)
Calle Swedhag
Calle Swedhag il 30 Nov 2016
Commentato: Andrei Bobrov il 30 Nov 2016
I need to find a way to convolute rows of a matrix together into a single vector. For example: If I have a matrix A = [1,2;3,4;5,6] need a function that will produce a vector B = conv(conv(A(1,:) , A(2,:)), A(3,:))
Is there any function that could do that? If no, could someone help me write a loop to do it for me?
Thanks

Risposte (1)

Andrei Bobrov
Andrei Bobrov il 30 Nov 2016
Modificato: Andrei Bobrov il 30 Nov 2016
A = reshape(1:6,2,[])';
[m,n] = size(A);
B = zeros(1,m*(n-1)+1);
B(1:n) = A(1,:);
for ii = 1:size(A,1)-1
B(1:n-ii+ii*n) = conv(B(1:ii*n-ii+1),A(ii+1,:));
end
  6 Commenti
Image Analyst
Image Analyst il 30 Nov 2016
Convolution is not multiplying poynomials together. What your nested convolution will produce is a gigantic Gaussian. That's what the central limit theorem guarantees. Any function(s), almost no matter what shape, if convolved more than about 5 or 6 times will look very close to a Gaussian.
Andrei Bobrov
Andrei Bobrov il 30 Nov 2016
I corrected my answer.

Accedi per commentare.

Categorie

Scopri di più su Polynomials in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by