How to fix "Index exceeds array bounds"?

10 views (last 30 days)
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.

Accepted Answer

madhan ravi
madhan ravi on 16 Oct 2018
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);

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!