안녕하세요, 저는 conv(x,y)
함수에 해당하는 MATLAB을 작성하는 데 어려움을 겪고 있습니다. 이것이 잘못된 결과를주는 이유를 파악할 수 없습니다. 배열의 경우 x1 = [1 2 1]
및 x2 = [3 1 1]
.필자 회선에 문제가있는 회귀 함수
는 여기에 내가
x1 = [1 2 1];
x2 = [3 1 1];
x1len = leng(x1);
x2len = leng(x2);
len = x1len + x2len - 1;
x1 = zeros(1,len);
x2 = zeros(1,len);
buffer = zeros(1,len);
answer = zeros(1,len);
for n = 1:len
buffer(n) = x(n);
answer(n) = 0;
for i = 1:len
answer(n) = answer(n) + x(i) * buffer(i);
end
end
matlab에 conv(x1,x2)
는 출력으로 3 7 6 3 1
을 제공하지만이 나에게 대답 3 5 6 6 6
을주고있는 것입니다. 어디서 잘못 됐습니까?
또한 미안 해요. 오페라 미니를 사용하고 있습니다.
출력 할 수 = SUM (spdiags (flipud (X (:)) * Y)) 하나 개의 이러한 솔루션은 기능 SUM, SPDIAGS 및 FLIPUD를 사용하는 다음이고; 2D 컨볼 루션을 위해 확장 될 수 있는가? – user1816546