Мне нужно сделать матрицу n*n
m
, элементы которой следуют m(i,i+1)=sqrt(i)
и 0 в противном случае. Например, для n=5
, мы должны иметьnumpy: заполнить смещение по диагонали с различными значениями
[0 a 0 0 0]
[0 0 b 0 0]
[0 0 0 c 0]
[0 0 0 0 d]
[0 0 0 0 0]
где {a,b,c,d}=sqrt({1,2,3,4})
. Here - решение для постоянной трехдиагональной матрицы, но мой случай немного сложнее. Я знаю, что могу сделать это с помощью цикла или со списком, но есть ли другие способы? n
может быть потенциально большой.
например. (Список коды постижения)
ele=lambda i,j:sqrt(i+1) if j-i==1 else 0
[[ele(i,j) for j in range(0,6)] for i in range(0,6)]
Вторая строка должна быть 'rng = np.arange (4)' –
Спасибо! Исправленный. –