Re: Indexed element treated as number?

*To*: mathgroup at smc.vnet.net*Subject*: [mg80073] Re: [mg80055] Indexed element treated as number?*From*: Bob Hanlon <hanlonr at cox.net>*Date*: Sun, 12 Aug 2007 07:09:45 -0400 (EDT)*Reply-to*: hanlonr at cox.net

Clear[a]; n = 100; kList1 = Array[a, n]; {Im[a[1]], Im[a[37]]} {Im(a(1)),Im(a(37))} a /: Im[a[37]] = 0; {Im[a[1]], Im[a[37]]} {Im(a(1)),0} a /: Im[a[_]] = 0; {Im[a[1]], Im[a[37]]} {0,0} Bob Hanlon ---- Jung-Tsung Shen <jushen at gmail.com> wrote: > (* The following problem and alike have been asked before. I have > searched extensively the archive of this forum but couldn't find a > perfect solution. *) > > > To get an array of length n, where n is large and post-given, one > issues the command, for example, > > n=100; > kList1=Array[a, n]; > > but it seems that there are some limitations to this approach. For > example, in cases that I know all of the elements are real, and would > like to issue, say, > > a[37]/:Im[a[37]]=0; > > I get an error message saying > "TagSet::sym: Argument a[37] at position 1 is expected to be a > symbol." To declare the element to be explicitly zero sometimes speed > up the computation. > > For a list such as > > kList2={k1, k2, k3, ..., k100}; > > there's no such limitations, but since the number of elements is > large, and is post-given, I couldn't have this before hand. > > Is there any solution(s) to this "problem"? > > Thanks! > > JT >