How to iterate odd and even runs alternatively?
16 次查看(过去 30 天)
显示 更早的评论
Hello there! I am trying to alternate between odd and even runs to do different things inside a for loop, i.e. the odd and even runs will be interdependent. For example: at t = 1, x1 = 10; at t = 2, x2 = x1+m; at t = 3, x1 = x2 ( derived from t = 2) +n and so on. The odd values of t indicate a local phase, for example and the even values of t indicate a global phase. I am trying to do this in the following way, but was wondering if there is a more efficient way to do this. Thanks for your time :)
while t < 1000
if mod(t,2)
% big block of code to calculate x using y
else
% big block of code to calculate y using x
end
end
2 个评论
Roger Stafford
2016-4-29
You could also use a for-loop:
for k = 1:2:999
t = k;
Do block calculating x using y with t
t = k+1;
Do block calculating y using x with t
end
You don't have waste time doing 'if' tests that way.
回答(1 个)
Elias Gule
2016-4-29
Let's try. Define variables needed for calculation.
x = [NaN,NaN];
t = 1;
m = 2; % any value you like.
n = -2; % any value you like.
Begin processing.
while t < 100
if mod(t,2)
if t == 1
x(1) = 10;
else
x(1) = x(2) + n;
end
else
x(2) = x(1) + m;
end
t = t + 1;
end
另请参阅
类别
在 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!