2013-05-14 4 views
1

J'ai une matrice représentée comme une liste de listes (mais peut facilement changer cette représentation si cela peut aider). Je mettrai à jour cette matrice pendant que le programme fonctionne. Je voudrais avoir la matrice affichée sur l'écran d'une manière standard. Donc, quelque chose commeImprimer et mettre à jour une matrice en place

enter image description here

Je voudrais mettre à jour cet affichage que le programme fonctionne.

Par exemple,

def updatematrix(): 
#Change some entries in the matrix 

A = [[3,2,3],[1,2,1],[2,8,6]] 
while(True): 
    updatematrix() 
    display(A) #This would ideally change the display in place. 

Qu'est-ce qu'une bonne façon de le faire? (En fait je vais changer des colonnes entières et des rangées et voudra finalement faire la ligne/colonne changée être dans une couleur différente.)

Je suis heureux d'utiliser des bibliothèques libres qui pourraient être utiles.

+1

Quelle est votre question? si c'est "est-ce possible?" la réponse est oui. si c'est "quelle bibliothèque utiliser?" le plus facile est probablement des malédictions. si c'est "tu feras mon code pour moi?" la réponse n'est probablement pas –

+0

@JoranBeasley Vous posez une très bonne question. Ce serait vraiment génial si quelqu'un répondait "Je recommande X pour cela et c'est un code qui vous permettra de commencer à afficher votre exemple de matrice." – marshall

Répondre

4

Je suggeest en utilisant la bibliothèque curses, qui fait partie des bibliothèques standard de Python http://docs.python.org/2/library/curses.html

J'ai inclus un peu d'un exemple piraté ensemble

import curses 
import time 

mywindow = curses.initscr() 

matrix = [[3,2,3],[1,2,1],[2,8,6]] 

def updateMatrix(m): 
    m[1][1] = m[1][1] * 2 
    return m 

def getMarixString(m): 
    x = '' 
    for row in m: 
     x += ' '.join(str(item) for item in row) 
     x += "\n" 
    return x 

z = 10 
while z > 1: 
    matrix = updateMatrix(matrix) 
    mywindow.addstr(0,0, getMarixString(matrix)) 
    mywindow.refresh() 
    z -= 1 
    time.sleep(3) 

curses.endwin() 
quit() 
+0

Merci. J'ai été rebuté par tous les détails de bas niveau avant. Pourriez-vous me montrer comment commencer avec mon problème? – marshall

+1

http://docs.python.org/2/howto/curses.html Voici un joli tutoriel sur comment démarrer :) –

+1

J'ai ajouté un simple exemple/démo sur l'utilisation des curses lib à ma réponse – georgealton

-1

Les calculs matriciels sont possibles, vous n'êtes pas sûr de la partie couleur. Vous pouvez regarder les tableaux NumPy et opérations en fonction de ce que vous ferez dans votre updatematrix(), http://www.scipy.org/Numpy_Functions_by_Category

+0

Ma question concerne l'affichage de la matrice et sa mise à jour sur place. – marshall

Questions connexes