python float division不起作用

时间:2015-11-06 06:30:24

标签: python floating-point python-2.x

我有一个python代码,我希望浮点除以矩阵中的两个元素。我尝试了float()和 future 导入部门,但没有一个工作。这是我的代码。

from __future__ import division
import numpy as np

def backsub(U, b):
    N = np.shape(U)[0] 
    x = b.copy()
    x[N - 1, 0] = x[N - 1, 0] / U[N-1, N-1]  #This keeps giving me integer results. No matter I do float(x[N - 1, 0]) or from __future__ import division
    print x[N - 1, 0]
    for i in range(N - 2, -1, -1): 
        for j in range(i + 1, N, 1):
            x[i, 0] = x[i, 0] - U[i, j] * x[j]
        x[i, 0] = x[i, 0] / U[i, i]
    return x

b = np.matrix('1; 2; 3')
U = np.matrix('6, 5, 1; 0, 1, 7; 0, 0, 2')
print backsub(U, b)

输出:

1
[[ 4]
 [-5]
 [ 1]]

1 个答案:

答案 0 :(得分:2)

尝试

x[i, 0] = float(x[i, 0]) / U[i, i]

试试

b = np.matrix('1; 2; 3', dtype=float)
U = np.matrix('6, 5, 1; 0, 1, 7; 0, 0, 2', dtype=float)

或者您也可以尝试

b = np.matrix([[1], [2], [3], dtype=float)
U = np.matrix([[6, 5, 1], [0, 1, 7], [0, 0, 2]], dtype=float)

希望它可以帮到你。