Re: extracting column data from 2D Matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg23441] Re: [mg23412] extracting column data from 2D Matrix
- From: "Mark Harder" <harderm at ucs.orst.edu>
- Date: Wed, 10 May 2000 02:32:22 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Chris;
You asked, first:
>
>How do I automate the process for the column Index without have to type it
>each time? That is perhaps something like the following I had in mind:
>
I don't understand what @@@ is all about, even though its gotten a lot
of attention here lately, so I do without it:
First, define a funtion to get the columns using Range[] to generate the
list of column indices within Part ([[ ]]):
selectCols[mtx_List, len_Integer, nSkip_Integer] :=
mtx[[All, Range[1, len, nSkip] ]];
define a 5 by 10 matrix:
mat = Array[m, {5, 10}];
& then
In[28]:=
cols = selectCols[mat, Dimensions[mat][[2]], 3]
Out[28]:=
{{m[1, 1], m[1, 4], m[1, 7], m[1, 10]},
{m[2, 1], m[2, 4], m[2, 7], m[2, 10]},
{m[3, 1], m[3, 4], m[3, 7], m[3, 10]},
{m[4, 1], m[4, 4], m[4, 7], m[4, 10]},
{m[5, 1], m[5, 4], m[5, 7], m[5, 10]}}
Your second question
>
>Also I like to average each 10 consequitive rows. That is I have written a
>RowMean function that generate the column vector of the 1000 elements. How
>do I then insert after each 10 y column the columns that holds the average?
>So the matrix now grows from 101 colums to 111 colums (still 1000 rows) but
>the averaged columns need to be inserted at (12,22,33,...).
>
isn't really clear to me, but I think you want to average sets of
10 consecutive elements from each row and insert the means in the column
following each set.
I've spent some time trying to do this in good FunctionalProgramming style
without success, so
I'll just have to leave it to the others.
-mark harder
harderm at ucs.orst.edu