У меня есть матрица (около 342 на 342), обозначенная C_{ij}
, и я хочу идентифицировать все индексы i, j, которые удовлетворяют условию C_{ij}
> rho, где rho — некоторое фиксированное значение. Я использую МАТЛАБ
Например, если у меня есть матрица C_{ij}
как:
C = 1 0.7 0.8
0.7 1 0.5
0.8 0.5 1
И rho = 0,6, то индексы, удовлетворяющие условию C_{ij}
> 0,6, это i,j = 1,2, поскольку C_{11}=C_{22}=1
и C_{12}=C_{21}=0.7
Но обратите внимание, что i,j=3 не удовлетворяет этому условию, поскольку хотя C_{13}=C_{31}=0.8
, C_{23}=C_{32}=0.5
Я не уверен, как/лучший способ сделать это в MATLAB?
i,j
в результат? Всегда лиC
симметричен? - person Luis Mendo   schedule 19.01.2016C
симметричным или нет, на самом деле не имеет значения, кроме того, что если он симметричен, вы можете использовать[rowt,colt,~] = find(triu(C)>rho]; row = [rowt;colt]; col = [colt;rowt]
. Я не уверен, что это быстрее, чем простое использование логики на полной матрице. - person Adriaan   schedule 19.01.2016C(2,3)
влияет на решение дляi=3
,j=3
согласно OP - person Luis Mendo   schedule 19.01.2016C(2,1),C(3,2)
? - person beaker   schedule 19.01.2016