increment two values in a single for loop

12 vues (au cours des 30 derniers jours)
Duncan
Duncan le 11 Août 2014
Commenté : Steven Lord le 26 Juin 2019
I was just wondering if there was a way to increment two variables simultaneously in a single for loop?
for example i want to increment
i = 1:1:n-times
but at the same time
j=1:1:m-times
in a single for loop

Réponses (3)

Star Strider
Star Strider le 11 Août 2014
This works:
times = 2;
m = 10;
n = 15;
j = 0
for i = 1:1:n-times
if j < m-times
j = j + 1;
end
% ... etc...
end
i % Display results
j
  1 commentaire
Image Analyst
Image Analyst le 11 Août 2014
or, without the if:
j = min(i, m-times);
Just an alternate way - I have no idea which is faster.

Connectez-vous pour commenter.


Iain
Iain le 11 Août 2014
There is a cheeky way:
for h = 1:110
[i, j] = ind2sub([10,11],h)
...
end

sourav  malla
sourav malla le 26 Juin 2019
You can also do like this:-
for i=1:n,j=1:m
%do something;
end
It will execute the stuff in (n*m) format.
  1 commentaire
Steven Lord
Steven Lord le 26 Juin 2019
At each iteration of the one for loop in that code, the variable j will be assigned the vector 1:m.
If you have two arrays of data:
variable1 = magic(5);
variable2 = gallery('moler', 5);
you could iterate over both with one loop if you assume or check that they have the same number of elements.
for whichElement = 1:numel(variable1)
V1 = variable1(whichElement);
V2 = variable2(whichElement);
% Do something with V1 and V2
fprintf('Element %2d of each matrix is %2d, %2d.\n', ...
whichElement, V1, V2);
end

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by