Skipping Iterations in a For Loop

89 vues (au cours des 30 derniers jours)
Scott Banks
Scott Banks le 23 Juil 2023
Commenté : Voss le 23 Juil 2023
Hi there, I have a vector
FEM = [-16 16 -18 12 -6 6]
FEM = 1×6
-16 16 -18 12 -6 6
I want to add together (16 + -16), (-18 +_16). (12-18) and (6 + -6)
I have been trying to use a for loop with the code:
for i = 1:6-1
FEM(i+1) + FEM(i)
end
ans = 0
ans = -2
ans = -6
ans = 6
ans = 0
However, from this I get one extra value that I do not want as shown, which is postive 6. What I really want is just [0 -2 -6 0].
I did a quick look up and came across the 'continue' function which should skip an iteration. So I set up the code like this:
for i = 1:6-1
FEM(i+1) + FEM(i)
if i ==3
continue
end
end
ans = 0
ans = -2
ans = -6
ans = 6
ans = 0
but look, I still get the five values instead of the four!
Could somebody help please?
Many thanks in advance!

Réponse acceptée

Voss
Voss le 23 Juil 2023
Basically you have to put the continue before the stuff you want to skip.
FEM = [-16 16 -18 12 -6 6];
for i = 1:6-1
if i ==3
continue
end
FEM(i+1) + FEM(i)
end
ans = 0
ans = -2
ans = 6
ans = 0
  2 commentaires
Scott Banks
Scott Banks le 23 Juil 2023
Thannk you very much, Voss!
Voss
Voss le 23 Juil 2023
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 23 Juil 2023
Modifié(e) : Torsten le 23 Juil 2023
FEM = [-16 16 -18 12 -6 6];
n = numel(FEM);
for i = 1:n-3
FEM(i+1) + FEM(i)
end
ans = 0
ans = -2
ans = -6
FEM(end) + FEM(end-1)
ans = 0

Catégories

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

Community Treasure Hunt

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

Start Hunting!

Translated by