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

Asked by Sam Thorpe

### Sam Thorpe (view profile)

on 1 Mar 2019
Latest activity Commented on by Stephan

### Stephan (view profile)

on 4 Mar 2019
Accepted Answer by Stephan

### Stephan (view profile)

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

### Stephan (view profile)

on 1 Mar 2019

Hi,
start reading here and work through the examples given:
Best regards
Stephan

Show 1 older comment
Stephan

### Stephan (view profile)

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
• and check how this sum works - meant is input argument '1' --> sum(x,1)
Sam Thorpe

### Sam Thorpe (view profile)

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
Stephan

on 4 Mar 2019
Nice to hear