I need help writing a matlab function
Ältere Kommentare anzeigen
I need help writing a Matlab function that takes a positive integer n as its argument, and returns the sum of all odd numbers between 1 and n.
1 Kommentar
Jan
am 15 Jan. 2017
Please clarify, if this is your homework. If so posting a solution might be counter-productive, because you would cheat if you deliver it. Even if it is a homework question, posting what you have tried so far and asking a specific question would be useful. Because asking for explanations is not a cheating instead of letting others solve your work.
Akzeptierte Antwort
Weitere Antworten (2)
Jan
am 13 Jan. 2017
3 Stimmen
Do you remember how Gauss calculated the sum over all elements from 1 to n? You can modify the method to use only the pairs of odd numbers. This reduces the compuations drastically and you should never process the dull sum.
3 Kommentare
@John BG: note that square brackets are not required: sum(1:1:100).
The mlint messages is ""Use of brackets [] is unnecessary." This might also be of interest:
I do not post the solution, because I assume, that this is a homework question. I even did not mention, that asking an internet search engine for the terms "sum of odd numbers" reveals the main part of the solution already: The sum of N odd numbers is N^2.
@Stephen: The step size 1 is not required in vectors, so this is enough: sum(1:100). This does not influence the computing time but is nicer . The leaner the code, the less chances for a typo... :-)
Walter Roberson
am 15 Jan. 2017
Assuming N odd,
1 + 3 + 5 +... N
N + (N-2) + (N-4) +... 1
Each pair adds to N+1. Count the pairs and multiply by that. Then divide by 2 because each pair is being counted twice.
Kategorien
Mehr zu Function Creation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!