2013-05-07 56 views
0

我想產生該數據的基礎上的矩陣的列表的基礎上,我有:產生串的矩陣

[[0,1],[1,0],[0,2 ],[1,1],[2,0],[0,3],[1,2],[2,1],[3,0]]

我想要做的是if方括號內的和等於1,產生一個字符串變量y_n,其中n是滿足該條件的列表的計數器, 和yxn,如果總和大於1,其中n計數產生的字符串的數量。 所以我的數據應該產生:

y_1 
y_2 
yx1 
yx2 

高達

yx7 

所以我的最好的嘗試是:

if len(gcounter) != 0: 
    hg = len(gcounter[0]) 
else: 
    hg=1 
    LHS=Matrix(hg,1,lambda i,j:(var('yx%d' %i))) 
print(LHS) 

的數據稱爲gcounter。

這不是給我一個錯誤,但它不填充LHS與東西

+0

這個班'Matrix'從哪裏來? – 2013-05-07 18:12:02

+0

來自Sympy。我會明天嘗試你的解決方案@Blckknght非常感謝。 – user124123 2013-05-07 21:57:55

回答

1

我不完全明白你在做什麼,但是我覺得這個發電機你想要做什麼:

def gen_y_strings(data): 
    counter_1 = counter_other = 0 
    for item in data: 
     if sum(item) == 1: 
      counter_1 += 1 
      yield "y_{}".format(counter_1) 
     else: 
      counter_other += 1 
      yield "yx{}".format(counter_other) 

您可以像這樣運行:

for result in gen_y_strings(gcounter): 
    print(result) 

其中,給出的示例數據,輸出你想要的東西:

y_1 
y_2 
yx1 
yx2 
yx3 
yx4 
yx5 
yx6 
yx7