какой смысл в MATLAB выражения x = sum (1./mat (mat> 0))? - PullRequest
0 голосов
/ 19 марта 2020

Мне нужна помощь по следующему выражению:

x=sum(1./mat(mat>0))

, где mat - матрица 45x45, а x - результирующее уникальное значение. Я не знаю, как работает выражение для матрицы, чтобы получить уникальное значение.

Заранее спасибо.

1 Ответ

1 голос
/ 19 марта 2020

Здесь я могу показать вам, как это работает

  1. учитывая 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

, который дает сумму обратных от предыдущего шага

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...