Re: ReplacePart question
- To: mathgroup at smc.vnet.net
- Subject: [mg13100] Re: ReplacePart question
- From: "Paul A. Rombouts" <paromb at worldonline.nl>
- Date: Tue, 7 Jul 1998 03:44:06 -0400
- Organization: World Online
- References: <6nkvd3$17k@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Walter Seaman wrote in message <6nkvd3$17k at smc.vnet.net>...
>For example, suppose I want to take the list
>{a,b,c,d} and replace a with y and x with b. It seems I should be able
>to use the command
>
>ReplacePart[{a, b, c,d},{x,y},{{1},{4}},{2,1}]
>
>but the output is
>{{x,y}\[LeftDoubleBracket]2,1\[RightDoubleBracket],b,
> c,{x,y}\[LeftDoubleBracket]2,1\[RightDoubleBracket]}
>
>i.e. m'ca is looking for {x,y}[[1,2]] (which is not defined) and trying
>to replace it in positions 1 and 4.
>If I try
>
>ReplacePart[{a, b, c,d},{x,y},{{1},{4}},{{2},{1}}]
>
>I still get the output
>
>{{x,y}\[LeftDoubleBracket]{2},{1}\[RightDoubleBracket],b,
> c,{x,y}\[LeftDoubleBracket]{2},{1}\[RightDoubleBracket]}
>
>Can anyone tell me how to accomplish this selective replacement? Thanks,
>W.Seaman
>
Hello Walter,
I've encountered exactly the same problem some months ago and I've
complained to student-support at Wolfram Research about it. I think
their reply might also be of interest to you:
From: "Paul A. Rombouts" <paromb at worldonline.nl> To:
mathgroup at smc.vnet.net
Subject: [mg13100] unexpected failure of ReplacePart
Hello,
I use Mathematica for Students v3.0.0.0 under Windows NT 4.0 on a
Pentium PC.
Please consider the following Mathematica in- and output:
In[1]:= ReplacePart[{a,b,c},{d,e,f},{{1},{2}},{{2},{3}}]
Part::partd:
"Part specification {d, e, f}[[{2},{3}]] is longer than depth of
object."
Out[1]= {{d,e,f}[[{2},{3}]],{d,e,f}[[{2},{3}]],c}
After reading the description of ReplacePart in appendix A.10 of the
Mathematica book 3rd edition, page 1183, I expected the result to be
{e,f,c}. Did I misinterpret the manual or could it be that the present
implementation of ReplacePart does not conform to its specification?
Kind regards,
Paul A. Rombouts <paromb at worldonline.nl>
________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hello Paul,
What you want to do is not possible in V3.0.x. You will have to replace
the parts individually and use a sequence of ReplaceParts commands:
In[51]:= ReplacePart[{a,b,c},{d,e,f},1,2] Out[51]= {e,b,c}
I have been told that the ablility to replace multiple parts will be
available in the next major release (i.e. 3.1).
Tom Zeller
Wolfram Research Technical Support - Student Versions
________________________________________________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^