MATLAB Answers

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

39 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.


Sign in to comment.

Accepted Answer

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


Show 1 older comment
Stephan on 1 Mar 2019
Try to understand what happens:
m = 100
n = 4
result = sum(reshape(1:m,n,[]),1)
  • 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

Sign in to comment.

More Answers (0)