Convolution of every row in matrix.
7 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(1 个)
Andrei Bobrov
2016-11-30
编辑:Andrei Bobrov
2016-11-30
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 个评论
Image Analyst
2016-11-30
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polynomials 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!