Найти - Пользователи
Полная версия: Собрать матрицу из диагоналей.
Начало » Python для новичков » Собрать матрицу из диагоналей.
1
Syao
Добрый день.
В общем есть последовательность с цифрами. Надо собрать из нее матрицу так, чтобы в ее диагоналях были значения == соответствующему элементу списка/на кол-во элементов в диагонали. Проще показать, чем объяснить:
Есть последовательность и пусть матрица должна быть 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()
Но он какой то шибко сложный, слишком много телодвижений…

Может кто нибудь другой вариант подскажет?
Zubchick
а если в последовательности будет 3 простых числа?
Syao
Спасибо, упомянуть забыл.
При составлении последовательности все ее элементы принудительно приводятся к вещественному типу. Так что в итоге получим матрицу 2х2 с дробными значениями.
sypper-pit
матрицы уже обсуждались … порыскав по форуму думаю найдешь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB