For Loop "Array indices must be positive integers or logical values"
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
IDN
am 9 Sep. 2022
Beantwortet: Image Analyst
am 9 Sep. 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 Kommentare
Akzeptierte Antwort
David Hill
am 9 Sep. 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 Kommentare
David Hill
am 9 Sep. 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))
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!