2017-01-04 2 views
1

Ich habe eine Matrix namens D und ich möchte einen bestimmten Wert von D als Schwelle wählen.Einen Schwellenwert von einer Matrix auswählen

D

 [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7] 
[1,] 4.20523 0.000000 0.000000 0.000000 0.0000000 0.00000000 0.00000000 
[2,] 0.00000 2.161999 0.000000 0.000000 0.0000000 0.00000000 0.00000000 
[3,] 0.00000 0.000000 1.138677 0.000000 0.0000000 0.00000000 0.00000000 
[4,] 0.00000 0.000000 0.000000 1.040475 0.0000000 0.00000000 0.00000000 
[5,] 0.00000 0.000000 0.000000 0.000000 0.3852305 0.00000000 0.00000000 
[6,] 0.00000 0.000000 0.000000 0.000000 0.0000000 0.04953807 0.00000000 
[7,] 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000000 0.01362526 
[8,] 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000000 0.00000000 
[9,] 0.00000 0.000000 0.000000 0.000000 0.0000000 0.00000000 0.00000000 
      [,8]   [,9] 
[1,] 0.000000000 0.000000e+00 
[2,] 0.000000000 0.000000e+00 
[3,] 0.000000000 0.000000e+00 
[4,] 0.000000000 0.000000e+00 
[5,] 0.000000000 0.000000e+00 
[6,] 0.000000000 0.000000e+00 
[7,] 0.000000000 0.000000e+00 
[8,] 0.005127803 0.000000e+00 
[9,] 0.000000000 9.693644e-05 

I verwendet

die (diag (D) < 0,56)

[1] 5 6 7 8 9

es, wie oben angezeigt. Ich möchte das 5. Diagonalelement als mein Epsilon fixieren. Das heißt, mein Epsilon = 0,3852305.

Ich möchte nicht immer die Matrix betrachten und das Epsilon wie epsilon = D [5,5] fixieren.

Auch habe ich versucht, ifelse Aussage

ifelse (D> 0 & D < 0.5,1,0)

 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] 
[1,] 0 0 0 0 0 0 0 0 0 
[2,] 0 0 0 0 0 0 0 0 0 
[3,] 0 0 0 0 0 0 0 0 0 
[4,] 0 0 0 0 0 0 0 0 0 
[5,] 0 0 0 0 1 0 0 0 0 
[6,] 0 0 0 0 0 1 0 0 0 
[7,] 0 0 0 0 0 0 1 0 0 
[8,] 0 0 0 0 0 0 0 1 0 
[9,] 0 0 0 0 0 0 0 0 1 

Daraus Wie kann ich den Epsilon-Wert als meine Schwelle beheben?

Vielen Dank im Voraus.

+0

Also immer Sie den mittleren Wert der Matrix wollen? – thelatemail

+1

'i <- welches (Diag (D) <0,56)) [1]; Epsilon <- D [i, i] '? – r2evans

+0

Ist es immer eine diagonale Matrix? –

Antwort

0

Dies sollte Ihre Schwelle zurück:

thres <- D[which(D>0 & D<0.5, arr.ind = TRUE)][1] 
thres 
# [1] 0.3852305 
+0

Danke. Es zeigt alle fünf Werte an. Aber ich brauche nur den ersten Wert. Nicht fünf Werte. – Shree

+0

nicht wirklich, sollten Sie genau einen Wert erhalten –

+0

Got it. Vielen Dank – Shree

0

Wenn Sie nur den Wert müssen dann das genug ist

diag(D)[which(diag(D) < 0.56)][1] 
Verwandte Themen