3 votos

Cómo seleccionar las columnas de una matriz con MAGMA

¿Cómo puedo formar una nueva matriz a partir de una dada eligiendo algunas de sus columnas, utilizando MAGMA?

3voto

Matthias Steinbauer Puntos 108

Suponga que tiene un $m\times n$ matriz $A=[A_{i,j}]$ definido en MAGMA. ¿Estoy en lo cierto al pensar que quieres definir un $m\times l$ matriz $B=[B_{r,s}]$ en MAGMA de forma que las columnas de $B$ son todas copias de columnas de $A$ . Esto se hace fácilmente utilizando bucles. Primero defina $B$ para ser la matriz cero sobre el anillo elegido $R$ :

B:=ZeroMatrix(R,m,l);

Entonces suponga que quiere la primera columna de $B$ para que sea igual a la $a$ -en la columna de $A$ ? Entonces utiliza el siguiente bucle:

for i in {1..m} do
B[i,1]:=A[i,a];
end for;

Repitiendo esto para todas las columnas de $B$ le dará su resultado.

0voto

Morgan Rodgers Puntos 3629

En realidad puedes hacer esto muy fácilmente en Magma usando el comando ColumnSubmatrix, sin necesidad de hacer un bucle. Usted puede utilizar esto de varias maneras.

Por ejemplo, si tiene una matriz $A$ y quieres $B$ que se compone de una selección de columnas:

1º, 2º, $\ldots$ , 5ª columna:

B := ColumnSubmatrix(A, 5);

3ª, 4ª, $\ldots$ , 7ª columna:

B := ColumnSubmatrix(A, 3, 4);

(ya que 7=3+4) O

ColumnSubmatrixRange(A, 3, 7);

2ª, 5ª y 8ª columnas: Esto es más complicado. Magma no te permite hacer esto de forma limpia. Pero puedes seleccionar las filas 2, 5 y 8 de una matriz individualmente. Obviamente puedes sustituir [2,5,8] por cualquier secuencia arbitraria.

Transpose(Matrix(Transpose(A)[[2,5,8]]));

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X