Попытка поместить все значения ниже и выше главной диагонали равной 0 в матрице - PullRequest
0 голосов
/ 28 февраля 2020

Таким образом, моя функция поставить все нули, кроме главной диагонали, - это беспорядок, и она не выполняет свою работу.

Первая функция будет вычитать каждый вход в строке матрицы для (одного из главный диагональный вход * (один из главных диагональных входов * (один из главных диагональных входов / вход ниже или выше главного входа). (простите за мой английский sh)

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

Если кто-то может понять, что я говорю, и может мне помочь, я был бы чрезвычайно благодарен!

1 Ответ

0 голосов
/ 28 февраля 2020

(Я не совсем уверен, что правильно интерпретирую ваш вопрос, но у меня недостаточно репутации, чтобы уточнить его как комментарий, так что это моя лучшая попытка ответа.)

Numpy имеет некоторые вспомогательные функции, которые, кажется, спасут вас от большой работы: если m - это матрица с n строками и n столбцами, m.diagonal() - это матрица с 1 строкой и n столбцами, представляющими диагональные элементы вашей матрицы. в целях. Функция numpy.fill_diagonal(m, x) заполнит диагональные ячейки вашей матрицы значением x (или значениями x по порядку, если x представляет собой список, матрицу или аналогичный тип данных, содержащий значения, которые вы хотите поместить в диагональ ).

Я не знаю точно. цель subtract_lines, и это помогло бы мне понять, если бы вы дали пример ввода и желаемый вывод, как вы сделали с другой функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...