For Loop "Array indices must be positive integers or logical values"
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
IDN
el 9 de Sept. de 2022
Respondida: Image Analyst
el 9 de Sept. de 2022
Good Morning all,
I have the below statement and its not working when i swith signs and i dont understand why. Appreciate the help!
THIS WORKS
for k = 2:nmr
if a(k) > a(k-1) & a(k-1) > a(k-2) & b(k) < b(k-1) & b(k-1) < b(k-2)
result(k) = 1;
elseif result(k)==0
end
end
BUT Once i swith logical signs i get the matlab error
THIS DOESNT WORK
for k = 2:nmr
if a(k) < a(k-1) & a(k-1) < a(k-2) & b(k) > b(k-1) & b(k-1) > b(k-2)
result(k) = 1;
elseif result(k)==0
end
end
0 comentarios
Respuesta aceptada
David Hill
el 9 de Sept. de 2022
matlab starts indexing at 1, you cannot index into an array at 0
for k = 2:nmr
if a(k) < a(k-1) & a(k-1) < a(k-2) & b(k) > b(k-1) & b(k-1) > b(k-2)
b(k-2) is b(0) when k==2 which cannot happen, matlab will error.
3 comentarios
David Hill
el 9 de Sept. de 2022
You could start your loop at 3.
for k = 3:nmr
or do something about the b(k-2)
for k = 2:nmr
if a(k) < a(k-1) & a(k-1) < a(max(1,k-2)) & b(k) > b(k-1) & b(k-1) > b(max(1,k-2))
Más respuestas (1)
Ver también
Categorías
Más información sobre Introduction to Installation and Licensing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!