increment two values in a single for loop

13 visualizaciones (últimos 30 días)
Duncan
Duncan el 11 de Ag. de 2014
Comentada: Steven Lord el 26 de Jun. de 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

Respuestas (3)

Star Strider
Star Strider el 11 de Ag. de 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 comentario
Image Analyst
Image Analyst el 11 de Ag. de 2014
or, without the if:
j = min(i, m-times);
Just an alternate way - I have no idea which is faster.

Iniciar sesión para comentar.


Iain
Iain el 11 de Ag. de 2014
There is a cheeky way:
for h = 1:110
[i, j] = ind2sub([10,11],h)
...
end

sourav  malla
sourav malla el 26 de Jun. de 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 comentario
Steven Lord
Steven Lord el 26 de Jun. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by