MathGroup Archive 2002

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

Search the Archive

Re: Adding columns and rows to a table

  • To: mathgroup at smc.vnet.net
  • Subject: [mg33516] Re: Adding columns and rows to a table
  • From: "Allan Hayes" <hay at haystack.demon.co.uk>
  • Date: Sun, 24 Mar 2002 01:44:48 -0500 (EST)
  • References: <a7eulo$mv3$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Bob,
A variant of your replacement method:

 Replace[data, {x___, y_} -> {x, y, y, y}, {0, 1}]

--
Allan

---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565


<BobHanlon at aol.com> wrote in message news:a7eulo$mv3$1 at smc.vnet.net...
>
> In a message dated 3/21/02 12:52:37 PM, pmhowe at lanl.gov writes:
>
> >I want to add to a table two columns that match the last column, and
> >two rows that match the last row.
> >
> >Thus, if my table is
> >
> >{{1,2,3,4},{5,6,7,8},{9,10,11,12}};  I want to modify it such that I
> >end up with
> >
> >{{1,2,3,4,4,4},  {5,6,7,8,8,8}, {9,10,11,12,12,12}, {
> >9,10,11,12,12,12}, {9,10,11,12,12,12}};
> >
> >This works:
> >
> >tab1 = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
> >
> >tab1c = Transpose[
> >       Append[Append[Transpose[tab1], Transpose[tab1][[-1]]],
> >         Transpose[tab1][[-1]]]];
> >tab1d = Append[Append[tab1c, tab1c[[-1]]], tab1c[[-1]]] // TableForm
> >
> >
> >However, I bet there are much more efficient and elegant ways of
> >doing this.  Any suggestions?
> >
> >Thanks in advance for the help.  The ideas I obtain from you folks
> >are extremely helpful.
> >
>
> tab1=Partition[Range[12],4];
>
> tab1 /.
>
>     {x__, y_?AtomQ}->{x,y,y,y} /.
>
>   {x__,y_}->{x,y,y,y}
>
> Which can be generalized readily to add n columns and m rows
>
> n=3; m=4;
>
> tab1 /. {x__, y_?AtomQ}->
>       {x,Sequence@@Table[y,{n+1}]} /.
>
>   {x__,y_}->{x,Sequence@@Table[y,{m+1}]}
>
> Or
>
> Join[
>   tab1c=Join[#,{Last[#]},{Last[#]}]& /@ tab1,
>   {Last[tab1c]},{Last[tab1c]}]
>
> Which can be generalized readily to add n columns and m rows
>
> Join[
>   tab1c=Join[#,Sequence@@
>             Table[{Last[#]},{n}]]& /@ tab1,
>   Sequence@@Table[{Last[tab1c]},{m}]]
>
>
> Bob Hanlon
> Chantilly, VA  USA
>




  • Prev by Date: Re: Getting Symbolic Real and Imag Parts? (Once Again)
  • Next by Date: Re:Full text of the current warning message(s)
  • Previous by thread: RE: Adding columns and rows to a table
  • Next by thread: cleaner way to do Options (named arguments)