Picking out columns from a matrix using MAGMA How do I form a new matrix from a given one by picking out some of its columns, using MAGMA?
 A: Suppose you have an $m\times n$ matrix $A=[A_{i,j}]$ defined in MAGMA. Am I correct in thinking that you want to define an $m\times l$ matrix $B=[B_{r,s}]$ in MAGMA such that the columns of $B$ are all copies of columns of $A$. This is easily done using loops. First define $B$ to be the zero matrix over your chosen ring $R$:
B:=ZeroMatrix(R,m,l);

Then suppose you want the 1st column of $B$ to be equal to the $a$-th column of $A$? Then use the following loop:
for i in {1..m} do
B[i,1]:=A[i,a];
end for;

Repeating this for all the columns of $B$ will give you your result. 
A: You can actually do this really easily in Magma using the ColumnSubmatrix command, no looping necessary.  You can use this in a few ways.
For example if you have a matrix $A$ and you want $B$ to be made up a selection of columns:
1st, 2nd, $\ldots$, 5th columns: 
B := ColumnSubmatrix(A, 5);

3rd, 4th, $\ldots$, 7th columns: 
B := ColumnSubmatrix(A, 3, 4);

(since 7=3+4) OR 
ColumnSubmatrixRange(A, 3, 7);

2nd, 5th, 8th columns: This is trickier.  Magma doesn't let you do this cleanly.  But you can select rows 2, 5, and 8 of a matrix individually. You can obviously replace [2,5,8] with any arbitrary sequence.
Transpose(Matrix(Transpose(A)[[2,5,8]]));

