How to change two variables at same time in a loop?

So i have something like:
for k = 1:nexecucoes
for i = 1:t*n
for v = 1:n
for j = 1:m
Pt(i,j,k) = 0.0116*r(v,j,k)*t*icorr;
end
end
end
end
And what i would like, is that when 'i' changes to i=2, 'v' changes also to v = 2.
It´s like, when i have i=1, v=1; i=2, v=2; i=3, v=1; i=4, v=2, and so on.
Can someone help me?

 Akzeptierte Antwort

Star Strider
Star Strider am 22 Sep. 2018
I would define ‘v’ within the loop as:
v = (1.*(rem(i,2)==1)) + (2.*(rem(i,2)==0));
Your loops would then become:
for k = 1:nexecucoes
for i = 1:t*n
v = (1.*(rem(i,2)==1)) + (2.*(rem(i,2)==0));
for j = 1:m
Pt(i,j,k) = 0.0116*r(v,j,k)*t*icorr;
end
end
end
if I understand correctly what you want to do.

4 Kommentare

It's exactly what i want. thank you.
Tell me something, in this case i wanted v =1 or v = 2 because n = 2.
But if i have a n = 4, i would like to have i = 1 v =1, until i =4 v = 4, and then v comes back to 1.
Like:
i= 1 v=1
i =2 v=2
i=3 v=3
i=4 v=4
i=5 v=1
i=6 v=2 and so on
Do you know how can i make this?
This took some experimenting to develop.
I believe it will do what you want:
i = 1:15; % Create Vector To Test
v = ceil(rem(i,4.01)); % Calculate ‘v’
Check = [i; v]
Check =
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3
Yeah, this helped me! Thanks
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by