Если вы хотите использовать функцию conv
, вы можете попробовать conv(A_i,B_i, 'full')
, но вы также можете использовать приведенный ниже код для свертки, например, для свертки столбцов convIt(A,B,1)
и для свертки строк convIt(A,B,2)
function C = convIt(A,B,dim)
% the code is equivalent to running conv(A_i,B_i, 'full') in matlab
% (where A_i and B_i are columns (dim=1) or rows (dim=2) of A,B)
% and then stack the results together
if 1==dim || nargin<3 % default
A = [A;zeros(size(A))];
B = [B;zeros(size(B))];
elseif 2==dim
A = [A,zeros(size(A))];
B = [B,zeros(size(B))];
end
C = ifft(fft(A,[],dim).*fft(B,[],dim),[],dim);
if 1==dim || nargin<3 % default
C = C(1:end-1,:);
elseif 2==dim
C = C(:,1:end-1);
end