How to Rewrite This Section of Code as a For Loop

2 vues (au cours des 30 derniers jours)
Cody Crouse
Cody Crouse le 14 Mar 2024
Commenté : Steven Lord le 15 Mar 2024
Do you know how a for loop equivalent for this would look like? I can't seem visualize what it would look like without having to make significant changes to the loop that I would have created: How can I compute the error without using the sum? I am not sure how to write it in terms of a loop. I am also not sure if I should use a for loop (given that the number of iterations will be the same as for the while loop) or if I should use the while loop:
This is the sevction of Code I want to convert to a for the purposes of a programming assignment that I have for engineering numerical methods:
function E=find_E(X_Prev, X_New);
termA = (X_New - X_Prev)^2;
termA = sum(termA(:))^0.5;
termB = X_New.^2;
termB = sum(termB(:))^0.5;
E = termA/termB;

Réponses (2)

Steven Lord
Steven Lord le 14 Mar 2024
Conceptually, isn't taking the sum of an array of data just the same as repeatedly adding (+) each element to a running total? [The two implementations may not result in exactly, down-to-the-last-bit, identical answers in practice, but in theory shouldn't they match?]
  3 commentaires
Cody Crouse
Cody Crouse le 15 Mar 2024
In addition, I am looking to rewrite this text of code as a loop:
function E = find_E(X_Prev, X_New)
termA = (X_New - X_Prev).^2;
termA = sum(termA(:))^0.5;
termB = X_New.^2;
termB = sum(termB(:))^0.5;
E = termA/te
Steven Lord
Steven Lord le 15 Mar 2024
Hint: take a look at the numel function.

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 15 Mar 2024
termAsum = 0;
for term = termA(:).'
termAsum = termAsum + term;
end
  2 commentaires
Cody Crouse
Cody Crouse le 15 Mar 2024
Does this serve as a resplacement for my code section? I am asking because I already that E = find_E(X_Prev, X_New) several times in my code. In addition, my term statements are underneath it.
Walter Roberson
Walter Roberson le 15 Mar 2024
That replaces
termA = sum(termA(:));
Note: it leaves out the ^0.5

Connectez-vous pour commenter.

Catégories

En savoir plus sur Programming 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