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

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

 Respuesta aceptada

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

4 comentarios

Hi Stephan,
I understand the underlying concepts around creating functions, what I'm struggling with here is seperating the values in the array so I can add them together.
I have tried specifying output as 1:n:m as to start at 1 and count up in values of n until it reached the mth term, but this just skips every nth value and returns the sum of the lot.
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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 1 de Mzo. de 2019

Comentada:

el 4 de Mzo. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by