Borrar filtros
Borrar filtros

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

3 visualizaciones (últimos 30 días)
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 comentarios
Jan
Jan el 9 de Feb. de 2023
Which lines is failing? Please post the complete error message, which would clarify this detail.
Sliman Izz
Sliman Izz el 9 de Feb. de 2023
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;

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 9 de Feb. de 2023
Editada: Jan el 9 de Feb. de 2023
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".

Categorías

Más información sobre Install Products en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by