【问题标题】:How to create variables based on the length of the array in Python?如何根据 Python 中数组的长度创建变量?
【发布时间】:2020-09-19 04:34:25
【问题描述】:

所以我正在尝试使用 克莱默法则 求解线性方程组,而我面临的主要问题是我必须创建 Ax,Ay,...An 变量每次都基于矩阵的维度。 Python中是否有任何方法可以让程序根据为矩阵维度启动的for循环自动创建变量?

【问题讨论】:

    标签: python numpy matrix linear-algebra


    【解决方案1】:

    我在这里找到了一个 python 解决方案(以及几乎任何其他语言):https://rosettacode.org/wiki/Cramer%27s_rule

    from numpy import linalg
     
    A=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
    B=[-3,-32,-47,49]
    C=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
    X=[]
    for i in range(0,len(B)):
        for j in range(0,len(B)):
            C[j][i]=B[j]
            if i>0:
                C[j][i-1]=A[j][i-1]
        X.append(round(linalg.det(C)/linalg.det(A),1))
     
    print('w=%s'%X[0],'x=%s'%X[1],'y=%s'%X[2],'z=%s'%X[3])
    

    【讨论】:

    • 使用 python 3.7.3 它给出的结果 w=2.0 x=-12.0 y=-4.0 z=1.0。您遇到的错误是什么?
    • 我想使用np.matrix,如果我将list 转换为np.matrix,则此代码不起作用
    • 好吧对不起,我成功了,我做了一些计算错误
    • 你可以让它为np.matrix工作吗,现在我通过将矩阵实现为np.array来使用这段代码
    • 您可以将您的 ABC np.matrix 转换为 np.array 并且它会起作用。使用: A=A.getA() B=B.getA()[0] C=C.getA() 您没有将矩阵实现为 np.array。你有 np.matrix。但是,在 np.matrix 上调用 getA() 将返回它的 np.array 变体。
    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2015-12-14
    • 2013-07-15
    • 2021-09-29
    相关资源
    最近更新 更多