@paveldunaev

Как перемножить элементы строки в матрице, которые принадлежать диапазону [a,b]?

Например у нас есть матрица :
1.192 1.192 2.255 0.011 2.167 
1.192 1.192 2.255 0.011 2.167 
2.255 2.255 1.734 0.109 5.810 
0.011 0.011 0.109 0.420 1.081 
2.167 2.167 5.810 1.081 0.191


Нам нужно получить вектор [x1, x2, x3, x4, x5], где
x1=умноженные элементы первой строки, которые принадлежат диапазону [2;10]
x2=умноженные элементы второй строки, которые принадлежат диапазону [2;10]
x3=аналогично
Вот код:
def vectorMatrix ():
    vector=[]
    for i in range (N): 
        for j in range (N):       
                if 2<=a[i][j]<=10:
                    vector[i] *= a[i][j]              
                    print (a[i][j], end =' ')
                print()
vectorMatrix ()
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dmshar
Читаем внимательно ваш код.
vector=[]
#Создаем ПУСТОЙ список, в котором вообще нет ни одного элемента.
....
vector[i] *= a[i][j]
# Ну предположим i=0. Но элемента vector[0] (впрочем, как и vector[1], vector[2].....) у вас нет - список, как я разъяснил выше, ведь пустой.

Запись типа
v*=a
эквивалентна
v=v*a
. Вопрос - что-же вы желаете получить, умножая
vector[i] = vector[i]* a[i][j]
-- еще раз, если элементов vector[i] с любым i у вас не существует.

Надеюсь мое подробное разъяснение поможет вам самому найти ошибки в вашем коде и получить от этого незабываемое наслаждение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы