Re: how to pick out alternating columns and rows in a matrix?
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg568] Re: [mg551] how to pick out alternating columns and rows in a matrix?
- From: villegas (Robert Villegas)
- Date: Sun, 19 Mar 1995 03:57:25 -0600
> Suppose I have a matrix of even dimensions, I would like > to form a matrix consisting of only the odd rows and columns of the > matrix. Hello Richard, If you want to pick out rows {r1, ..., rj} and columns {c1, ..., ck} from the matrix, then Part will do what you want: Part[u, {r1, ..., rj}, {c1, ..., ck}] You can use the Range function on Dimensions[u] to generate the odd indices: In[15]:= u = Array[a, {6, 6}]; In[16]:= dims = Dimensions[u] Out[16]= {6, 6} In[17]:= {rows, columns} = Range[1, #, 2]& /@ dims Out[17]= {{1, 3, 5}, {1, 3, 5}} In[18]:= Part[u, rows, columns] Out[18]= {{a[1, 1], a[1, 3], a[1, 5]}, {a[3, 1], a[3, 3], a[3, 5]}, > {a[5, 1], a[5, 3], a[5, 5]}} You can give a list of indices to Part for each dimension of the tensor, rank 2 or whatever. Regards, Robby Villegas