试图将等于0的主对角线上下的所有值放入矩阵中

问题描述 投票:0回答:1

所以我把除主对角线以外的所有零都放的功能是一团糟,它没有起作用。

[第一个函数将减去矩阵行中的每个入口,用于(主斜角入口*(主斜角入口*(主斜角入口之一/主入口下方或上方的入口)。(对不起,我的英语)

def subtract_lines(m,r,x,y):
for i in range(r,r + 1):
    for j in range(0,m.shape[1]):
        m[i,j] = m[i,j] - (y * (x / y))
return m

第二个函数应该给我这样的答案:numpy.array([[4.0,2.0,3.0],[3.0,4.0,3.0],[2.0,5.0,6.0]] = array([[x 。,0.,0。],[0.,x。,0。],[0。,0.,x。]])x =随机数(我希望我的代码中有这个结果)

def all_zeros(m):
for i in range(0,m.shape[0]):
    for j in range(0,m.shape[1]):
            for l in range(0,m.shape[0]):
                for c in range(0,m.shape[1]):
                    if i == j and l != i:
                        subtract_lines(m,l,m[l,j],m[i,j])
return m

如果有人能够理解我的意思并可以帮助我,我将非常感激!

python numpy matrix line rows
1个回答
0
投票

(我不完全确定我能正确解释您的问题,但是我没有足够的声誉作为评论加以澄清,所以这是我最好的答案。)

Numpy具有一些帮助器函数,它们似乎可以为您节省很多工作:如果m是具有n行和n列的矩阵,m.diagonal()是具有1行和n列的矩阵,它们表示的对角线项您的矩阵顺序。函数numpy.fill_diagonal(m, x)将使用值x(或x的值,如果x是包含要放置在对角线上的值的列表,矩阵或类似数据类型,则按顺序填充x) )。

我不清楚确切的信息。 subtract_lines的目的,它可以帮助我理解是否像使用其他功能一样提供了示例输入和所需的输出。

© www.soinside.com 2019 - 2024. All rights reserved.