Re: VectorToMatrix

*To*: mathgroup at smc.vnet.net*Subject*: [mg4357] Re: VectorToMatrix*From*: rubin at msu.edu (Paul A. Rubin)*Date*: Thu, 11 Jul 1996 01:02:12 -0400*Organization*: Michigan State University*Sender*: owner-wri-mathgroup at wolfram.com

In article <4qqn5d$49m at dragonfly.wolfram.com>, Robert Pratt <rpratt at math.unc.edu> wrote: ->I want to define a function VectorToMatrix[list_, n_] that behaves as ->follows: -> ->VectorToMatrix[{a,b,c,d,e,f,g,h,i,j}, 4]//MatrixForm -> ->0 a b c d ->0 0 e f g ->0 0 0 h i ->0 0 0 0 j -> ->Now n can be determined from Length[list], which will always be equal to ->n choose 2 for some n. But I would rather input n to save that ->computation. (I will be doing this for a lot of vectors.) -> ->Any ideas? -> ->Rob Pratt ->Department of Mathematics ->The University of North Carolina at Chapel Hill ->CB# 3250, 331 Phillips Hall ->Chapel Hill, NC 27599-3250 -> ->rpratt at math.unc.edu Another possible solution to this uses the MatrixManipulation standard package: <<LinearAlgebra`MatrixManipulation` utmatrix[ x_List, n_Integer ] := Module[ { a, b, c }, a = Drop[ UpperDiagonalMatrix[ b, n + 1 ], 1 ]; c = DeleteCases[ Flatten[ a ], 0 ]; a /. Thread[ Rule[ c, x ] ] ] /; Positive[ n ] && (Length[ x ] == n(n + 1)/2) utmatrix[ {a,b,c,d,e,f,g,h,i,j}, 4 ] // MatrixForm Paul ************************************************************************** * Paul A. Rubin Phone: (517) 432-3509 * * Department of Management Fax: (517) 432-1111 * * Eli Broad Graduate School of Management Net: RUBIN at MSU.EDU * * Michigan State University * * East Lansing, MI 48824-1122 (USA) * ************************************************************************** Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. J. W. v. GOETHE ==== [MESSAGE SEPARATOR] ====