Registrarse
Home
Foros
Miembros
Calendario
Normas
Ayuda

Foros de usuarios de openSUSE
Retroceder   ForoSUSE > Zona Técnica > Programación y Scripts


Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook

Respuesta
 
Herramientas Desplegado

[Python] - Matrices.
  #1  
Antiguo 14-nov-2010, 06:24
Meta Meta está desconectado
Habitual
 
Fecha de Ingreso: 28-julio-2006
Versión: 42.2
Mensajes: 140
Agradecimientos: 17
Agradecido 0 Veces en 0 Mensajes
Poder de Credibilidad: 12
Meta está en el buen camino
[Python] - Matrices.

He llegado un poco el tema de las matrices a ver como es.

Ver ejercicios.

Página 196 de este docuemnto PDF. http://marmota.act.uji.es/mtp/pdf/python.pdf

La verdad que no entiendo ni papa.

PD: Por fin descargué el manual en PDF que me recomendaste. Pedazo de tutorial, está buenísimo. Tengo intenciones de hacer un servidor Web casero con openSUSE con un buen manual al igual que hice en su día con Windows. Puedes ver el manual aquí.

Última edición por Meta; 14-nov-2010 a las 06:30
Responder Citando
  #2  
Antiguo 14-nov-2010, 13:07
Avatar de xisco
xisco xisco está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 23-marzo-2006
Ubicación: Sector Horchata
Versión: La ultima estable
Mensajes: 1.686
Agradecimientos: 29
Agradecido 157 Veces en 129 Mensajes
Poder de Credibilidad: 14
xisco está en el buen camino
uqe no entiendes??
normalmente cuando he programado se definen matrices de 2 dimensiones x,y
segun he leido ahi en python no hay matrices sino listas, asi que haces una lista de listas y cada fila es una lista.
si n=4 pues seria una matriz asi
1000
0100
0010
0001
asi que tendrias cuatro listas, en este caso tienes n listas de n elementos, en cada lista pones un 1 en el numero d elista que es, yo no lo veo complicado aunque de python no se nada

Salu2
Responder Citando
  #3  
Antiguo 14-nov-2010, 16:47
Meta Meta está desconectado
Habitual
 
Fecha de Ingreso: 28-julio-2006
Versión: 42.2
Mensajes: 140
Agradecimientos: 17
Agradecido 0 Veces en 0 Mensajes
Poder de Credibilidad: 12
Meta está en el buen camino
Intenté hacer algo como esto:

Código:
n = int(raw_input('Introduce un entero positivo: '))

M = []
for i in range(n):
    M.append( [0] * n )
    print M

M [0] [0] = 1
print M
Su resultado fue:
Cita:
Introduce un entero positivo: 6
[[0, 0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
Menudo disparate.
Responder Citando
  #4  
Antiguo 15-nov-2010, 03:49
Avatar de Physlord
Physlord Physlord está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 22-marzo-2006
Ubicación: $ find /world -name physlord
Versión: 12.2
Mensajes: 1.606
Agradecimientos: 6
Agradecido 38 Veces en 34 Mensajes
Poder de Credibilidad: 14
Physlord está en el buen camino
Enviar un mensaje por MSN a Physlord Enviar un mensaje por Yahoo  a Physlord Enviar un mensaje por Skype™ a Physlord
Revisa tu código linea por linea. No se si estás usando un manual o algo así, trata de buscar uno con que tenga ejemplos de cada función para que veas que hace cada cosa.

Para hacer algo como lo que quieres se me ocurre algo así:

Código:
n = int(raw_input('Introduce un entero positivo: '))

M = [];
for i in range(n):
  temporal = []
  for j in range(n):
    if i==j:
      temporal.append(1)
    else:
      temporal.append(0) 
  M.append(temporal)

print M
o usando la librería numpy se puede simplificar.

Código:
import numpy as npy
n = int(raw_input('Introduce un entero positivo: '))
M = npy.zeros((n,n), int)
for i in range(n):
    M[i,i] = 1

print M
Creo que lo que te falta es un poco de práctica con programación. Como dije sería bueno que trataras de buscar un manual accesible y con muchos ejemplos. Hace como 5 años que no programo en python, así que no tengo ninguno a la mano, pero seguro en google encuentras algo.

Saludos!
__________________
Que rete chulo es México verdá'e Dios !!
----------------
Mi blog: Zeronte, haciendo Linux aún más fácil
Responder Citando
  #5  
Antiguo 15-nov-2010, 04:04
Meta Meta está desconectado
Habitual
 
Fecha de Ingreso: 28-julio-2006
Versión: 42.2
Mensajes: 140
Agradecimientos: 17
Agradecido 0 Veces en 0 Mensajes
Poder de Credibilidad: 12
Meta está en el buen camino
Hola:

No se programar y estoy aprendiendo Python con este PDF.

http://marmota.act.uji.es/mtp/pdf/python.pdf

Código:
while True:
    try:
        n = int(raw_input("[!]Introduce el orden de la matrix: "))
        break;
    except:
        print "[X]Formato incorrecto."
 
M = []
for i in range(n):
    a = [0] * n
    a[i] = 1
    print a         ## Simplemente para mostrarla, en realidad no se ha de mostrar
    M.append(a)
Saludo.
Responder Citando
  #6  
Antiguo 15-nov-2010, 09:13
Avatar de xisco
xisco xisco está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 23-marzo-2006
Ubicación: Sector Horchata
Versión: La ultima estable
Mensajes: 1.686
Agradecimientos: 29
Agradecido 157 Veces en 129 Mensajes
Poder de Credibilidad: 14
xisco está en el buen camino
hola,
como te dije mucho de python no se (mas bien nada) pero vamos tienes un pequeño fallo en el algoritmo. Lo que creo que deberias hacer es:
for i in range (n)
poner ceros hasta la pos i-1, en la i un 1 y despues ceros
y despues haces el append de esto.

Salu2
Cita:
Iniciado por Meta Ver Mensaje
Intenté hacer algo como esto:

Código:
n = int(raw_input('Introduce un entero positivo: '))

M = []
for i in range(n):
    M.append( [0] * n )
    print M

M [0] [0] = 1
print M
Menudo disparate.
Responder Citando
  #7  
Antiguo 15-nov-2010, 10:45
jcsl jcsl está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 18-mayo-2008
Versión: Tumbleweed
Mensajes: 2.104
Agradecimientos: 0
Agradecido 973 Veces en 587 Mensajes
Poder de Credibilidad: 12
jcsl llegará a ser famoso muy pronto
Hola.

Usando el paquete NumPy, como dice Physlord, he visto otra forma de hacerlo, igual que lo hacía con MATLAB.

Código:
from numpy import *

while True:
   try:
      n = int(raw_input("[!]Introduce el orden de la matriz: "))
      break;
   except:
      print "[X]Formato incorrecto."

M = eye(n)
print M
que da como salida:

Código:
[!]Introduce el orden de la matriz: 5
[[ 1.  0.  0.  0.  0.]
 [ 0.  1.  0.  0.  0.]
 [ 0.  0.  1.  0.  0.]
 [ 0.  0.  0.  1.  0.]
 [ 0.  0.  0.  0.  1.]]
La matriz resultante es de números reales y no de enteros, pero sigue siendo la matriz identidad. Después puedes asignar valores a los elementos de la matriz usando la notación:
M[x,y]=valor
Aunque como este es un ejercicio de aprendizaje parece estar más pensado para hacerlo usando bucles for. Además del libro que estás mirando, te puede resultar interesante mirar la documentación de Python.

Un saludo.
Responder Citando
Respuesta

Marcadores

Etiquetas
matrices, python


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
[Python] Comparar listas de palabras Meta Programación y Scripts 3 15-nov-2010 01:04



Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook


La franja horaria es GMT +2. Ahora son las 03:39.
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.

Esta página está bajo una licencia de Creative Commons, salvo que no se indique lo contrario.
Creative Commons License

Valid CSS!

Diseño por:Designed by: vbdesigns.devbdesigns.de 
Contáctenos - ForoSUSE - Archivo - Declaración de Privacidad - Arriba