creating loop with two variables
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
sermet
el 7 de Dic. de 2017
Respondida: Jan
el 7 de Dic. de 2017
For example;
a=0:2:10;
b=0:2:6;
% number of elements of a is always bigger than b
I need to create for loop as below;
result(1)=a(1)-b(1);
result(2)=a(2)-b(2);
result(3)=a(3)-b(3);
result(4)=a(4)-b(4);
result(5)=a(5)-b(4);
result(6)=a(6)-b(4);
Since a and b variables' number isn't constant for each problem. How can I create this loop for working properly with arbitrary numbers of a and b?
0 comentarios
Respuesta aceptada
Birdman
el 7 de Dic. de 2017
Editada: Birdman
el 7 de Dic. de 2017
for i=1:max(numel(a),numel(b))
if(i>=min(numel(a),numel(b)))
result(i)=a(i)-b(min(numel(a),numel(b)));
else
result(i)=a(i)-b(i);
end
end
3 comentarios
Birdman
el 7 de Dic. de 2017
Your answer is of course simpler but he mentioned to do it with a for loop, therefore I wrote this. Otherwise of course I would have written something like you did.
KL
el 7 de Dic. de 2017
You could call numel, outside the loop and store its output in a variable (after finding min and max) and only use this variable inside the loop.
Now, you're calling min and numel so many times (sometimes even twice within the same iteration).
Más respuestas (2)
Jan
el 7 de Dic. de 2017
% number of elements of a is always bigger than b
This was not considered in the other suggestions. Another solution:
a = 0:2:10;
b = 0:2:6;
result = a - b(min(1:numel(a), numel(b)))
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!