Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BloodyDark en 1 Mayo 2010, 03:26 am



Título: matrices en python...
Publicado por: BloodyDark en 1 Mayo 2010, 03:26 am
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! ^^


Título: Re: matrices en python...
Publicado por: leogtz en 1 Mayo 2010, 04:05 am
¿Con poca disposición?  >:(

No sé como se manejen las matrices en python, pero para sumar basta con hacer algo así:
Código:
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:


Código:
(%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.


Título: Re: matrices en python...
Publicado por: ^Tifa^ en 1 Mayo 2010, 06:05 am
Para tu primera duda, convertir una frase insertada en un arreglo te puede servir split

Código
  1.  
  2. mensaje=raw_input("Inserte una Frase :: ")
  3.  
  4. respuesta = mensaje.split(",")
  5.  
  6. for a in range(len(respuesta)):
  7.  print("El indice numero %d" % a)
  8.  print("Es %s" % respuesta[a])
  9.  
  10.  

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
  1. matriz1 = [1,2,3]
  2. matriz2 = [4,5,6]
  3.  
  4. for a in range(len(matriz1)):
  5.  for b in range(len(matriz2)):
  6.  
  7.    print("La suma es ", (matriz1[a]+matriz2[b]))
  8.  

El resultado de lo anterior es:

Citar
bash-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
  1.  
  2. matriz1 = [[1,2,3], [4,5,6]]
  3. matriz2 = [[4,5,6], [8,9,10]]
  4.  
  5. for a in range(len(matriz1)):
  6.  for b in range(len(matriz2)):
  7.  
  8.    print("La suma es ", (matriz1[a][b]+matriz2[b][a]))
  9.  
  10.  

Y el resultado de lo anterior es:

Citar
bash-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.


Título: Re: matrices en python...
Publicado por: leogtz en 1 Mayo 2010, 06:30 am
Yo no sé python, pero la suma de matrices se hace así:

Código:
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.


Título: Re: matrices en python...
Publicado por: ^Tifa^ en 1 Mayo 2010, 07:22 am
Yo no sé python, pero la suma de matrices se hace así:

Código:
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
  1. matriz1 = [[1,2,3], [4,5,6]]
  2. matriz2 = [[4,5,6], [8,9,10]]
  3.  
  4.  

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


Título: Re: matrices en python...
Publicado por: leogtz en 1 Mayo 2010, 07:45 am
Okay, gracias por el dato, entonces la suma es así en python:

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

Código:
[code]leo@lein:~/Escritorio$ python py.py
A + B =  [[2, 4, 6], [8, 10, 12]]
leo@lein:~/Escritorio$
Código:
(%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]