MathGroup Archive 2010

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

Search the Archive

Re: reading different locations of a matrix specified

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113918] Re: reading different locations of a matrix specified
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Thu, 18 Nov 2010 07:04:08 -0500 (EST)
  • References: <201011161004.FAA05711@smc.vnet.net> <Pine.LNX.4.63.1011160429540.6974@wopr.wolfram.com> <4CE26195.7080304@12000.org> <Pine.LNX.4.63.1011160456580.6974@wopr.wolfram.com> <ic0ar9$6pm$1@smc.vnet.net>

Hi,
> I was using
> 
> ---------------------------
> A={{1,2,3},{4,5,6},{7,8,9}};
> pos={{1,1},{3,3}};
> 
> (A[[ Sequence@@ #]]=0) & / @ pos;    (* UPDATE *)
> 
> A
> Out[192]= {{0,2,3},{4,5,6},{7,8,0}}
> --------------------------
> 
> and this works ok. But from your reponses, I started looking
> again at the documenation to see if I can find another
> command like Extract, but works to do a write, not just read,
> and then I found it:
> 
> ------------------------------------
> A={{1,2,3},{4,5,6},{7,8,9}};
> pos={{1,1},{3,3}};
> 
> ReplacePart[A,pos->0]  (* UPDATE *)
> 
> Out[207]= {{0,2,3},{4,5,6},{7,8,0}}
> ------------------------------------
> 
> So, I am very happy now. With Extract[] to read, with ReplacePart[]
> to write, I have all the tools I needed now to make my code
> look better. Good bye Sequence@@, it was nice knowing you ;)

I think you should be aware that the memory consumption of the two might
be very different for large matrices: ReplacePart will make a copy while
the Part+Sequence will change the matrix in place. It might make a
difference depending on what you do (you might want to look at
MemoryInUse and MaxMemoryUsed to see what happens)...

hth,

albert


  • Prev by Date: Re: Mathematica 8 docs online now!
  • Next by Date: Re: Does activating 8 disable 7?
  • Previous by thread: Re: reading different locations of a matrix specified
  • Next by thread: Re: reading different locations of a matrix specified by indices