Привет, у меня возникли трудности при написании эквивалента matlab функции conv(x,y)
.Я не могу понять, почему это дает неправильный вывод.Для массивов 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
для ответа.Где я ошибся?
Также, извините за форматирование, которое я использую в Opera Mini.