Re: Could this be improved?

• To: mathgroup at smc.vnet.net
• Subject: [mg21757] Re: Could this be improved?
• From: "Allan Hayes" <hay at haystack.demon.co.uk>
• Date: Thu, 27 Jan 2000 22:56:38 -0500 (EST)
• References: <86mdpv\$2f3@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Jordan:

myMtx[v_] :=
Reverse[Partition[PadLeft[Reverse[#], 3#2 - 2, {0}, #2 - 1], #2, 1]] &[v,
Length[v]]

myMtx[{1, 2, 3}]

{{1, 0, 0}, {2, 1, 0}, {3, 2, 1}, {0, 3, 2}, {0, 0, 3}}

--
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

"Jordan Rosenthal" <jr at ece.gatech.edu> wrote in message
news:86mdpv\$2f3 at smc.vnet.net...
> Hi all,
>
> I wrote the following code which works correctly.  I was wondering,
however,
> if there was a way of doing the same thing that had more of a Mathematica
> approach.  I am new to Mathematica and am still trying to get a grasp on
how
> to program effectively within the environment.
>
> myMtx[v_] := Module[
>     {nCols, nRows, vPadded, c},
>     nCols = Length[v];
>     nRows = 2nCols - 1;
>     c = ZeroMatrix[nRows, nCols];
>     vPadded = PadRight[v, nRows, 0];
>     For[i = 1, i <= nCols, i++,
>       c[[All, i]] = vPadded;
>       vPadded = RotateRight[vPadded]
>       ];
>     c
>     ]
>
> For example, myMtx[{1,2,3}] takes the vector {1,2,3} and turns it into the
> matrix {{1, 0, 0}, {2, 1, 0}, {3, 2, 1}, {0, 3, 2}, {0, 0, 3}} which looks
> like
>
> [ 1 0 0 ]
> [ 2 1 0 ]
> [ 3 2 1 ]
> [ 0 3 2 ]
> [ 0 0 3 ]
>
>
> Thanks,
>
> Jordan
>
>
>
>
>

```

• Prev by Date: Re: Could this be improved?
• Next by Date: Re: Could this be improved?
• Previous by thread: Re: Could this be improved?
• Next by thread: Re: Could this be improved?