Здесь я могу показать вам, как это работает
- учитывая
mat
как показано ниже
mat =
0.32872 -0.82823 -0.28158 1.85967
1.91667 0.80715 0.28686 -1.25210
1.48839 -0.91152 0.31743 2.56112
-0.58941 0.19372 -0.67827 -0.74609
запустить
mat > 0
, тогда вы получите
>> mat>0
ans =
1 0 0 1
1 1 1 0
1 0 1 1
0 1 0 0
, который показывает значение logi c, где mat
записей является положительным
запустите
mat(mat>0)
, и вы получите
>> mat(mat>0)
ans =
0.32872
1.91667
1.48839
0.80715
0.19372
0.28686
0.31743
1.85967
2.56112
, который извлекает эти положительные записи из mat
запустить
1./mat(mat>0)
и вы получите
>> 1./mat(mat>0)
ans =
3.04213
0.52174
0.67187
1.23892
5.16198
3.48598
3.15035
0.53773
0.39045
, который дает поэлементную обратную величину этих положительных значений
запустите
x = sum(1./mat(mat>0))
, и вы получите
>> x = sum(1./mat(mat>0))
x = 18.201
, который дает сумму обратных от предыдущего шага