MATLAB Answers

0

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

Asked by Sam Thorpe on 1 Mar 2019
Latest activity Commented on by 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.

1 Answer

Answer by Stephan
on 1 Mar 2019
 Accepted Answer

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

  4 Comments

Show 1 older comment
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)
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.