Rainer,
MyData = {3, 2, 4, 5, 6};
MyFunc[i_] := Sum[MyData[[j]], {j, 1, i}];
MyFunc[1]
MyFunc[2]
MyFunc[3]
3
5
9
You need the DelayedSet, :=, instead of Set, =. Otherwise Mathematica tries
to evaluate the Sum statement immediately, which it can't do because it
doesn't yet have a value for i.
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
From: Rainer [mailto:wilhelm.rainer at gmx.net]
To: mathgroup at smc.vnet.net
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 ...?
Thanks
Rainer