Re: List Replace Problems
- To: mathgroup at smc.vnet.net
- Subject: [mg59862] Re: [mg59831] List Replace Problems
- From: Pratik Desai <pdesai1 at umbc.edu>
- Date: Wed, 24 Aug 2005 06:30:45 -0400 (EDT)
- References: <200508230851.EAA03004@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
wesh wrote: >I want to perform some element by element operations on a class of >lists. For a given list The operation in a much simplified form can be >characterized by > >a = {1, 3, 5, 7, 9}; >Do[a[[i]] /= i, {i, 1, 5}]; >a > >Out[38]= >{1, 3/2, 5/3, 7/4, 9/5} > >Now, however, if I try to define a function to do this for a general >list, namely, > >dlst[u_List] = > Do[u[[i]] /= i, {i, 1, 5}]; >a = {1, 3, 5, 7, 9}; >dlst[a]; >a > >Set::setps: >({1, 2, 3, 4, 5}) in assignment of part is not a symbol. ! More ... > >Out[39]= >{1, 3, 5, 7, 9} > >I get the above error. It says I'm trying to assign one number to >another number. Why does Mathematica perform in the first case but >refuse to in the second. > >I tried > >b = Do[ReplacePart[a, a[[i]]/i, i], {i, 1, 5}] > >but it doesn't even bother to return an error message. > > >How, can I get the desired function? > >Thanks, > >Wesh > > > How about some thing like this using module dlst[u_?ListQ, r_?IntegerQ] := Module[{list1, list2}, list1 = u; If[r > Length[list1], Print["Incompatible Iterator please revise your argument"], list2 = Table[list1[[s]]/s, {s, 1, r, 1}]]] Hope this helps Pratik -- Pratik Desai Graduate Student UMBC Department of Mechanical Engineering Phone: 410 455 8134
- References:
- List Replace Problems
- From: wesh <wesh@acm.org>
- List Replace Problems