For Loop "Array indices must be positive integers or logical values"
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
David Hill
2022-9-9
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 个评论
David Hill
2022-9-9
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))
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!