Имеется ли матричная операция, которая при поэлементном делении матрицы на матрицу не будет трогать главную диагональ.
В этом примере в делителе нули по диагонали дают Inf, а нужно чтобы было ноль:
octave:32> a = [1 2 3; 4 5 6; 7 8 9]
a =
1 2 3
4 5 6
7 8 9
octave:33> r = [0 1 2 ; 1 0 2; 1 2 0]
r =
0 1 2
1 0 2
1 2 0
octave:34> a./r
ans =
Inf 2.0000 1.5000
4.0000 Inf 3.0000
7.0000 4.0000 Inf
P.S.1 Стараюсь обойти циклы.
P.S.2 Может в Питоне что-то есть?
Здравствуйте, barmale-y, Вы писали:
BY>Имеется ли матричная операция, которая при поэлементном делении матрицы на матрицу не будет трогать главную диагональ.
BY>В этом примере в делителе нули по диагонали дают Inf, а нужно чтобы было ноль:
BY>BY>octave:32> a = [1 2 3; 4 5 6; 7 8 9]
BY>a =
BY> 1 2 3
BY> 4 5 6
BY> 7 8 9
BY>octave:33> r = [0 1 2 ; 1 0 2; 1 2 0]
BY>r =
BY> 0 1 2
BY> 1 0 2
BY> 1 2 0
BY>octave:34> a./r
BY>ans =
BY> Inf 2.0000 1.5000
BY> 4.0000 Inf 3.0000
BY> 7.0000 4.0000 Inf
BY>
BY>P.S.1 Стараюсь обойти циклы.
BY>P.S.2 Может в Питоне что-то есть?
есть
Здравствуйте, Аноним, Вы писали:
BY>>P.S.2 Может в Питоне что-то есть?
#python 3
a = [1,2,3,4,5,6,7,8,9]
b = [0,1,2,1,0,2,1,2,0]
ij = [(i,range(3)) for i in range(3)]
a = {(i,j):v for (i,j),v in zip(ij, a)}
b = {(i,j):v for (i,j),v in zip(ij, b)}
c = [a[i,j]/b[i,j] if i!=j else 0 for i,j in ij]
Не проверял..
Циклов нет?