Re: Package to 'graft' Lists onto Matrices
- To: mathgroup at smc.vnet.net
- Subject: [mg87707] Re: [mg87667] Package to 'graft' Lists onto Matrices
- From: robert prince-wright <robertprincewright at yahoo.com>
- Date: Wed, 16 Apr 2008 04:59:59 -0400 (EDT)
Thanks Craig - you may have spotted that I meant to add/insert columns! I still think Wolfram should have a simple, optimised, function that allows you to Insert and add matrices, vectors / lists into defined positions in an existing matrix. Something like: Graft[ list, mat, Column, 3] - which inserts list into matrix mat after column 3. Graft[ list, mat, Row, 2] - which inserts list into matrix mat after row 2. Or how about Graft[ mat1, mat2, Column, 3 - to insert a matrix. I find myself rethinking how to do this every now and then. (Your probably thinking I should just write a package - but what a waste of time for something so fundamental.) W_Craig Carter <ccarter at mit.edu> wrote: Hello, You might try these: mat = RandomInteger[{0, 10}, {5, 7}]; mat // MatrixForm AddRow[mat_?MatrixQ, row_List] := Join[mat, {row}] AddRow[mat, {a, b, c, d, e, f, g}] // MatrixForm AddColumn[mat_?MatrixQ, column_List] := Transpose[Join[Transpose[mat], {column}]] AddColumn[mat, {a, b, c, d, e}] // MatrixForm No checking here or matching dimensions, but that could be built in easily. > > It seems a little daft that that you need to use MapThread and Append to simply graft a row onto an existing matrix! > -- W. Craig Carter Robert Prince-Wright Houston TX, 77006 USA