首先,我不是母语为英语的人(只是为了说清楚)
我为我的数字类编写了一个脚本,其中我计算了所有必要的函数来传递我的类。现在我想将所有内容都实现到GUI中以使事情变得更容易。
对于整个测试,我使用'test'文件来查看输出的类型等等。该文件名为Numerik_Funktionen1,并导入到我正在处理的每个文件中。现在问题在于:
这是我编写的一个类和函数:
class LR:
def LR_zerlegung(self, A, b = 0.):
'''
splits Matrix A in L and R
L = lower triangular matrix -> linke untere Dreiecksmatrix
R = upper triangular matrix -> rechte obere Dreiecksmatrix
returns (L, R) as tupel
'''
self.A = np.copy(A) * 1.
self.ALr = A * 1.
self.n = len(self.A[0])
self.b = b
self.L = np.eye(self.n)
for k in range(self.n-1):
for i in range(self.n)[k+1:self.n]:
self.L[i, k] = self.ALr[i, k] / self.ALr[k, k]
self.ALr[i, k] = 0
for j in range(self.n)[k+1:self.n]:
self.ALr[i, j] = self.ALr[i, j] - self.L[i, k] * self.ALr[k, j]
self.R = self.ALr
print('Ax = b')
print('A', '\n', self.A,"\n")
print('b', '\n', self.b,"\n")
print('L', '\n', self.L,"\n")
print('R', '\n', self.R,"\n")
return self.L, self.R
我遇到的问题最好用代码描述(我现在既没有写好也没有好看的代码,对不起)
import Numerik_Funktionen1
a = input("a eingeben: ")
b = input("b eingeben: ")
array_from_string = [s.split(',') for s in a.split(';')]
array_from_string2 = [s.split(',') for s in b.split(';')]
c = np.asarray(array_from_string)
d = np.asarray(array_from_string2)
A = c.astype(int)
b = d.astype(int)
看起来像这样的输入:2,3; 5,4 并且对于b 2; 4
在进行A之后是一个数组
(array([[2, 3],
[5, 4]])
)
和b(array([[2],
[2]])
)
该函数的调用如下所示:Numerik_Funktionen1.LR.LR_zerlegung(A, b)
到目前为止一切顺利,但如果我想采用之前描述的函数LR_zerlegung,它会返回:'numpy.ndarray' object has no attribute 'A'
我不知道我做错了什么,为什么它不符合Numerik_Funktionen1。我知道我的问题没有得到很好的表述,我很抱歉提前。
谢谢