MATLAB: How to fix “Index exceeds array bounds”

convolutionhelpindex exceeds

Trying to come up with a convolution function without using "conv" but i run into the error of index exceeds array bounds. This is my code so far:
x=[1,2,3,4,5,6];
h=[4,5,6];
X=[x,zeros(1,length(h)-1)];
H=[h,zeros(1,length(x)-1)];
output=length(x)+(length(h)-1);
for i=1:output
new(i)=sum(x(1:i).*fliplr(h(1:i)));
end
disp(output);
disp(new);
I get a correct value for X and H as well as the output so i am thinking my problem is in my for loop. The thought process behind that is I will multiply matrix x by flipped(k) and take the sum of that until the for loop ends.

Best Answer

x=[1,2,3,4,5,6];
h=[4,5,6];
X=[x,zeros(1,length(h)-1)];
H=[h,zeros(1,length(x)-1)];
output=length(x)+(length(h)-1);
for i=1:output
new(i)=sum(X(1:i).*fliplr(H(1:i))); % x and h should be capital here
end
disp(output);
disp(new);