2016-01-25 25 views
0

我有以下代碼如何從循環保存/名稱結果Sagemath

N=3 
Z=matrix(24,3); Z; 
for i in range(N-1): 
    for j in range(N-1): 
     for k in range(N-1): 
      m=matrix([[0,i,j],[i,0,k],[j,k,0]]); m ; 

結果是:

[0 0 0] 
[0 0 0] 
[0 0 0] 
[0 0 0] 
[0 0 1] 
[0 1 0] 
[0 0 1] 
[0 0 0] 
[1 0 0] 
[0 0 1] 
[0 0 1] 
[1 1 0] 
[0 1 0] 
[1 0 0] 
[0 0 0] 
[0 1 0] 
[1 0 1] 
[0 1 0] 
[0 1 1] 
[1 0 0] 
[1 0 0] 
[0 1 1] 
[1 0 1] 
[1 1 0] 

我如何保存/名稱取悅每個迭代的結果呢?在matlab中,我們只需創建一個零矩陣並在每次迭代時填充它。在這裏它不起作用。或者換句話說,我如何從結果中重新調用每3行,以便在將來的函數中使用它?

謝謝

回答

0

您可以定義一個函數

def m(i, j, k): 
    return matrix([[0,i,j],[i,0,k],[j,k,0]]) 

,然後叫它

sage: m(1,0,1) 
[0 1 0] 
[1 0 1] 
[0 1 0]