MATLAB Answers

can someone help me create function with 2 inputs that creates a single output?

81 views (last 30 days)
Sam Thorpe
Sam Thorpe on 1 Mar 2019
Commented: Stephan on 4 Mar 2019
I have been asked to create the following:
Create a function called Ex7b with 2 inputs (n and m) and a single output. Write the function so the output is the sum of the sets of n numbers between 1 and m. for example if n=4 and m=100:
?????? = [1 + 2 + 3 + 4 5 + 6 + 8 + 9......97 + 98 + 99 + 100]. The function should round m to the nearest multiple of n.
I have looked at all the info on creating functions, but have no idea on where to start with this one.
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Stephan
Stephan on 1 Mar 2019
Hi,
start reading here and work through the examples given:
Best regards
Stephan

  4 Comments

Show 1 older comment
Stephan
Stephan on 1 Mar 2019
Try to understand what happens:
m = 100
n = 4
result = sum(reshape(1:m,n,[]),1)
Therefore:
  • think about what 1:m does
  • read about reshape --> reshape(x,m,n)
  • and check how this sum works - meant is input argument '1' --> sum(x,1)
Sam Thorpe
Sam Thorpe on 4 Mar 2019
Thank you for your help Stephan. After a bit of logical thinking and your tips, I have gotten the function to work exactly as I wanted.
function ex7b=sumset(n,m)
o=n*ceil(m/n) %round the array up to nearest multiplication of n
p=[1:o] %definition of the array
q=(numel(p))/n %calculation of column size
x=reshape(p,[n,q]) %reshaping the array in to an n by m/n array
y=x.' %transposition of array
z=sum(y) %sum of each array row
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!