Форум сайта python.su
Добрый день.
В общем есть последовательность с цифрами. Надо собрать из нее матрицу так, чтобы в ее диагоналях были значения == соответствующему элементу списка/на кол-во элементов в диагонали. Проще показать, чем объяснить:
Есть последовательность и пусть матрица должна быть 4x3, тогда получаем:Я допер только до такого варианта:
[
]
"""
raws_num, coll_num -- количество строк и столбцов в матрице, соответственно.
diag_sums -- выше озвученная последовательность.
diag_num -- количество элементов в каждой из диагоналей.
"""
from numpy import array, vstack
diag_list = []
for i in xrange(min(raws_num, coll_num)):
diag_list.append([diag_sums[j] / diag_num[j]
for j in xrange(0 + i, max(raws_num, coll_num) + i)])
if raws_num < coll_num:
diag_list.reverse()
matrix_of_diag = array(diag_list)
else:
[diag_list[i].reverse() for i in xrange(len(diag_list))]
matrix_of_diag = vstack(diag_list).transpose()
Отредактировано (Ноя. 15, 2009 15:02:33)
Офлайн
а если в последовательности будет 3 простых числа?
Отредактировано (Ноя. 15, 2009 14:11:47)
Офлайн
Спасибо, упомянуть забыл.
При составлении последовательности все ее элементы принудительно приводятся к вещественному типу. Так что в итоге получим матрицу 2х2 с дробными значениями.
Офлайн
матрицы уже обсуждались … порыскав по форуму думаю найдешь.
Офлайн