MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Using "Sum" (i = 1 ... N) in a function definition


wilhelm.rainer at gmx.net (Rainer) wrote:
> I was trying to define a function using the Sum command in the
> following way (simplified example):
>
>  MyData = {3,2,4,5,6};
>  MyFunc[i_] = Sum[MyData[[j]],{j,1,i}];
>
> As you can see, the idea is to use the length of the list (i)
> as a variable in the function definition, such that
>
>  MyFunc[1] = 3
>  MyFunc[2] = 3 + 2 = 5
>  MyFunc[3] = 3 + 2 + 4 = 9
>
> etc. Mathematica does not like the abobe statements, and prints the
> following error message:
>
> "Part specification K$394 is neither an integer nor a list of
> integers."
>
> Does anybody know how to define (correctly) such a function. Should be
> possible ...?

Yes. Instead of

MyFunc[i_] = Sum[MyData[[j]],{j,1,i}];

use

MyFunc[i_] := Sum[MyData[[j]],{j,1,i}];

that is, use a delayed, rather than an immediate, assignment.

David Cantrell


  • Prev by Date: Re: Using "Sum" (i = 1 ... N) in a function definition
  • Next by Date: Re: Using "Sum" (i = 1 ... N) in a function definition
  • Previous by thread: Re: Using "Sum" (i = 1 ... N) in a function definition
  • Next by thread: Re: Using "Sum" (i = 1 ... N) in a function definition