matrices en python...

Iniciado por BloodyDark, 1 Mayo 2010, 03:26 AM

0 Miembros y 1 Visitante están viendo este tema.

BloodyDark

si bien soy demasiado novato... esta vez he buscado un poco y me encuentro que las matrices se definen con listas de igual numero de elementos...

bien... aqui viene mi duda... como haría para que en python me capturase un valor introducido por el usuario para convertirlo en una matriz...

y otra duda.. como sumar matrices? xD

lo se que suena soso y todo eso... pero la verdad ando con poca disposición y con pocos recursos para conseguir informacion de varias fuentes...


so... algun alma piadosa puede ayudarme un poco? xD

danke! ^^

leogtz

¿Con poca disposición?  >:(

No sé como se manejen las matrices en python, pero para sumar basta con hacer algo así:

for(i = 0; i < filas; i++)
        for(j = 0; j < columnas; j++)
            sumMatrix[i][j] = matrix[i][j] + matrix_2[i][j];


Mira así, a ver si lo entiendes:


(%i1) A : matrix([1,2,3],[0,1,4]);
                                  [ 1  2  3 ]
(%o1)                             [         ]
                                  [ 0  1  4 ]
(%i2) B : matrix([2, 3, 0], [-1, 2, 5]);
                                 [  2   3  0 ]
(%o2)                            [           ]
                                 [ - 1  2  5 ]
(%i3) A + B;
                                 [  3   5  3 ]
(%o3)                            [           ]
                                 [ - 1  3  9 ]


Lo mismo para la resta.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

^Tifa^

#2
Para tu primera duda, convertir una frase insertada en un arreglo te puede servir split

Código (python) [Seleccionar]


mensaje=raw_input("Inserte una Frase :: ")

respuesta = mensaje.split(",")

for a in range(len(respuesta)):
  print("El indice numero %d" % a)
  print("Es %s" % respuesta[a])



Donde el delimitador para saber donde comenzar a dividir la palabra insertada por ti, es una coma (,) por lo cual en ese ejemplo para comenzar a dividir lo insertado en trozos deberias insertar la frase asi: manzana, pera, uva  para que el indice 0 sea manzana, el indice 1 uva, etc. Ahora puedes sustituir la coma(,) del split por lo que tu quieras.. espacio en blanco, punto, loquesea.

Sobre tu segunda pregunta (suma matricez)

Código (python) [Seleccionar]

matriz1 = [1,2,3]
matriz2 = [4,5,6]

for a in range(len(matriz1)):
  for b in range(len(matriz2)):

    print("La suma es ", (matriz1[a]+matriz2[b]))


El resultado de lo anterior es:

Citarbash-3.1$ python pyton.py
('La suma es ', 5)
('La suma es ', 6)
('La suma es ', 7)
('La suma es ', 6)
('La suma es ', 7)
('La suma es ', 8)
('La suma es ', 7)
('La suma es ', 8)
('La suma es ', 9)

Si fuera con matrices de 2 dimensiones seria:

Código (python) [Seleccionar]


matriz1 = [[1,2,3], [4,5,6]]
matriz2 = [[4,5,6], [8,9,10]]

for a in range(len(matriz1)):
  for b in range(len(matriz2)):

    print("La suma es ", (matriz1[a][b]+matriz2[b][a]))



Y el resultado de lo anterior es:

Citarbash-3.1$ python pyton.py
('La suma es ', 5)
('La suma es ', 10)
('La suma es ', 9)
('La suma es ', 14)


Nunca he sido buena sumando matricez lol  :xD  pero por ahi va la idea... Leo podra ayudar.

leogtz

#3
Yo no sé python, pero la suma de matrices se hace así:

suma[i][j] = A[i][j] + B[i][j]

Se crea una matriz de dimensiones n x m.

Sólo hay que pasarlo a python.

Si supiera manejar bien las tuplas lo haría yo mismo, pero me da pereza recordar.

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

^Tifa^

Cita de: Leo Gutiérrez. en  1 Mayo 2010, 06:30 AM
Yo no sé python, pero la suma de matrices se hace así:

suma[i][j] = A[i][j] + B[i][j]


Y yo no me gusta ni quiero recordar como sumar matricez  :xD  odio los numeros como el perro callejero al agua y el jabon.

En Python las matrices de 2 dimensiones se declaran:

Código (python) [Seleccionar]

matriz1 = [[1,2,3], [4,5,6]]
matriz2 = [[4,5,6], [8,9,10]]



Puse el ejempliyo arriba, el problema es la suma... aunque creo lo esta haciendo por el resultado que lanzo...

leogtz

Okay, gracias por el dato, entonces la suma es así en python:

Código (python) [Seleccionar]
#!/usr/bin/python
matriz = [[1, 2, 3], [4, 5, 6]]
matriz_2 = [[1, 2, 3], [4, 5, 6]]
suma = [[0,0,0], [0,0,0]]
for i in range(2):
for j in range(3):
suma[i][j] = matriz[i][j] + matriz_2[i][j]
print "A + B = ", suma


[code]leo@lein:~/Escritorio$ python py.py
A + B =  [[2, 4, 6], [8, 10, 12]]
leo@lein:~/Escritorio$


(%i1) A : matrix([1,2,3],[4,5,6]);
                                  [ 1  2  3 ]
(%o1)                             [         ]
                                  [ 4  5  6 ]
(%i2) B : matrix([1,2,3],[4,5,6]);
                                  [ 1  2  3 ]
(%o2)                             [         ]
                                  [ 4  5  6 ]
(%i3) A + B;
                                 [ 2  4   6  ]
(%o3)                            [           ]
                                 [ 8  10  12 ]
(%i4)


Saludos.[/code]
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com