Re: Converting 2D Lists to 3D lists

• To: mathgroup at smc.vnet.net
• Subject: [mg94977] Re: Converting 2D Lists to 3D lists
• From: Yves Klett <yves.klett at googlemail.com>
• Date: Thu, 1 Jan 2009 07:28:51 -0500 (EST)
• References: <gjfjr3\$d7a\$1@smc.vnet.net>

```Karthik,

one convenient, if not very fast way for numerical lists is to use a
rule like e.g.:

to3D[list_, z_] := list /. {x_?NumericQ, y_?NumericQ} :> {x, y, z}

slist = {{{-1, 2}, {0, 1}, {3, 4}}, {{-3, -2}, {-1.5,
2.5}, {0.5, -.75}}}

{{{-1, 2}, {0, 1}, {3, 4}}, {{-3, -2}, {-1.5, 2.5}, {0.5, -0.75}}}

to3D[slist, 0]

{{{-1, 2, 0}, {0, 1, 0}, {3, 4, 0}}, {{-3, -2, 0}, {-1.5, 2.5,
0}, {0.5, -0.75, 0}}}

This is very useful for transforming sets of graphics primitives, since
it works for points, lines and polygons straight away and you don=C2=B4t =
have
to worry about the structure of the set.

Regards,
Yves

Karthik Sridhara schrieb:
> Hello Everyone,
>
> I want to know if there is a way to convert a 2D lists to 3D Lists.
> Below is the example list in list form:
>
> SampleList3D = {{{-1, 2}, {0, 1}, {3, 4}}, {{-3, -2}, {-1.5, 2.5},
> {0.5, -.75}}}
>
> I want the list to be intact but add 5 at the end of each sublist;
> This is how I want it to look:
>
> {{{-1, 2, 5}, {0, 1, 5}, {3, 4, 5}}, {{-3, -2, 5}, {-1.5, 2.5, 5},
> {0.5, -.75, 5}}}
>
> I also want to be able do the same as above but add 3 this time to the
> second column. This is how it should look.
> {{{-1, 2, 5}, {0, 1, 5}, {3, 4, 5}}, {{-3, -2, 3}, {-1.5, 2.5, 3},
> {0.5, -.75, 3}}}
>
> Is there any way I can do this? I have been trying to use Map and
> Insert but I am getting the wrong result.
>
> Insert[SampleList3d, x, {#, -1}] & /@ {1, 2} ;
>
> I get this result and this is not what I want:
> {{{{-1, 2}, {0, 1}, {3, 4},
>    x}, {{-3, -2}, {-1.5, 2.5}, {0.5, -0.75}}}, {{{-1, 2}, {0, 1}, {3,
>     4}}, {{-3, -2}, {-1.5, 2.5}, {0.5, -0.75}, x}}}
>
>