2015-10-09 35 views
0

函數add我想返回l作爲矩陣類型。但我只能以列表類型的形式返回它。 我的目標是使m3爲矩陣類型,direclty想要顯示m3作爲矩陣,我創建了str如何將任何數據類型轉換爲我們自己創建的數據類型

嘗試: 進口SYS

class matrix: 
    def __init__(self,a): 
     self.file=a 
     c=open(self.file,'r') 
     self.list=c.readlines() 
     self.row=len(self.list) 
     self.col=len(self.list[1].split(" ")) 
     c.close 
     templist=[] 
     i=0 
     j=0 
     self.elements=[] 
     while i<self.row: 
      while j<self.col: 
       templist=self.list[i].split(" ") 
       self.elements.append(templist[j]) 
       j=j+1 
      j=0 
      i=i+1 
     #return elem 
    def __str__(self): 
     #print self.file 
     #print self.list 
     s='' 
     for x in self.list: 
      s=s+x 
     return s 
    def __add__(self,other): 
     #print self.elements 
     #print other.elements 
     i=0 
     l=[] 
     while i<len(self.elements): 
      l.append(int(self.elements[i])+int(other.elements[i])) 
      i=i+1 
     #l=matrix(l) 
     #print type(l) 
     return l 
    def write(self,sumlist,outputfile): 
     #print sumlist 
     #print outputfile 
     fobj=open(outputfile,'w') 
     i=0 
     j=0 
     k=0 
     while i<self.row: 
      while j<self.col: 
       fobj.writelines(str(sumlist[k])+" "), 
       j=j+1 
       k=k+1 
      j=0 
      fobj.writelines("\n") 
      i=i+1 
     #return "wrote matrix in required file" 
    #def check(self): 
    # print self.elements 
     #print self.file 
     # print self.list 
     # print self.col 
     #print self.row 
m1=matrix('D:\mat1.txt') 
m2=matrix('D:\mat2.txt') 
#print type(m1) 
print m1 
print 
print m2 
#m3=matrix() 
m3=m1+m2 
#m3=matrix(m3) 
#print m3 
#print type(m3) 
m3.write(m3,'D:\mat3.txt') 
#print 
print m3 

除例外,E: 打印E

回答

1

l你應該return self代替。

+0

可否請您詳細說明一下,因爲我無法通過返回自己獲得期望的輸出。毫無疑問,它現在正在返回矩陣類型,但我希望我的列表轉換爲矩陣類型。 –

+0

或者如果有任何其他方法來解決這個問題。可能是我開始在錯誤的方向上創建功能。我將面臨的最大問題是將變量轉換爲矩陣數據類型,我也給出了一個文件作爲輸入。代碼架構可能是錯誤的。 –

+0

你想要你的矩陣看起來如何? – Academiphile

相關問題