Why I'm getting this error( Array indices must be positive integers or logical values)?

3 次查看(过去 30 天)
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 个评论
Sliman Izz
Sliman Izz 2023-2-9
Array indices must be positive integers or logical values.
Error in untitled3 (line 16)
w(n+1) = w(n)+(2*0.01*e*[x(0),x(1),x(2)])% µ=0.01;

请先登录,再进行评论。

回答(1 个)

Jan
Jan 2023-2-9
编辑:Jan 2023-2-9
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".

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by