Why I'm getting this error( Array indices must be positive integers or logical values)?
Show older comments
M=3
W = [0,0,0]
for n = 0:2000
x = cos(0.03 * pi * n)
stem(n,x)
hold on; % hold the plot
end
b= [1 -2 4];
freqz (b,1)
for n = 0:2000
d=conv(x,b)
y=transpose(W)*x
e=d-y;
w(n+1) = w(n)+(2*0.01*e*[x(n),x(n+1),x(n+2)])% µ=0.01;
end
3 Comments
KSSV
on 9 Feb 2023
Srat the loop indexing from 1.
Jan
on 9 Feb 2023
Which lines is failing? Please post the complete error message, which would clarify this detail.
Sliman Izz
on 9 Feb 2023
Answers (1)
When I run your code, it stops with the error, the w is undefined in the line:
w(n+1) = w(n)+(2*0.01*e*[x(n),x(n+1),x(n+2)])% µ=0.01;
But even if w exists in the real code, w(0) is not a valid index in the first iteration, because in Matlab indices start at 1.
x(n) will fail also for n=0. But for n=2 there will be an error again, because the first loop creates a scalar x only.
Another bold guess is, that you have redefined a function as an array, e.g. "cos" or "stem".
Categories
Find more on Get Started with MATLAB 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!