How to fix "Index exceeds array bounds"?
10 views (last 30 days)
Show older comments
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.
0 Comments
Accepted Answer
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);
0 Comments
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!