У меня есть такой тензор:
out = [[ 3, 6, 5, 4],
[ 6, 5, 10, 13],
[ 5, 10, 6, 22],
[ 4, 13, 22, 9]]
И это симметричная матрица. Что я хочу сделать, это разделить каждый элемент на значения в тех же индексах по диагонали. Таким образом, значения диагонали в этой матрице:
index0 = 3
index1 = 5
index2 = 6
index3 = 9
Результат будет выглядеть так:
[[3 , 6/(3*5) , 5/(3*6) , 4/(3*9) ]
[6/(3*5), 5 , 10/(5*6), 13/(5*9)]
[5/(3*6), 10/(5*6), 6 , 22/(6*9)]
[4/(3*9), 13/(5*9), 22/(6*9), 9 ]]
Позвольте мне пройти через первый ряд:
3
- это значение в диагонали, поэтому мы пропустим его
6/3*5
, 6
- это значение в index 0 and 1
, так что я разделю 6
на диагональные значения в index0 and 1
.
5/3*6
, 5
- это значение по индексу 0 and 2
, поэтому я разделю его на диагональные значения по индексу 0 and 2
4/3*9
, 4
- это значение по индексу 0 and 3
, чтобы я разделил его на диагональные значения по индексу 0 and 3