我正在使用 Matlab 并尝试各种不同的东西,并找出在不使用内置函数的情况下实现目标的方法。显然,Matlab(根据谷歌及其网站)不发布“conv2”功能的源代码。.
是否有“conv2(h1,h2,A)”的替代功能或一种无需使用 Matlabs 就可以编写您自己的版本的方法conv2
。
Matlab 中的help
选项/关键字并没有真正帮助我
- - 编辑 - -
这是替代conv2(A,B)
. 但我正在寻找类似的东西conv2(h1,h2,A)
function B = convolve(A, k);
[r c] = size(A);
[m n] = size(k);
h = rot90(k, 2);
center = floor((size(h)+1)/2);
left = center(2) - 1;
right = n - center(2);
top = center(1) - 1;
bottom = m - center(1);
Rep = zeros(r + top + bottom, c + left + right);
for x = 1 + top : r + top
for y = 1 + left : c + left
Rep(x,y) = A(x - top, y - left);
end
end
B = zeros(r , c);
for x = 1 : r
for y = 1 : c
for i = 1 : m
for j = 1 : n
q = x - 1;
w = y -1;
B(x, y) = B(x, y) + (Rep(i + q, j + w) * h(i, j));
end
end
end
end