【发布时间】:2014-09-03 15:15:51
【问题描述】:
我有两个矩阵。在 matrix1 中只有值 0 和 255。另一个矩阵有不同的值。
vec1 <- c(255,0,0,0,255,0,0,255,255,0)
vec2 <- c(0,255,0,255,0,0,255,255,0,0)
vec3 <- c(112,68,235,147,89,56,245,7,119,76)
vec4 <- c(194,158,13,41,182,218,5,78,195,235)
matrix1 <- matrix(c(vec1,vec2,vec1,vec2),10)
matrix2 <- matrix(c(vec3,vec4,vec3,vec4),10)
现在我想为 matrix2 定义一个阈值,这样也只有 值 0 和 255。
matrix2[matrix2 > 150] <- 255
matrix2[matrix2 <= 150] <- 0
然后我想从两个矩阵中获得技能分数。 这些是一个阈值,但我想要技能分数 对于所有阈值(从 0 到 255)。
a <- length(which(matrix1 == 255 & matrix2 == 255))
b <- length(which(matrix1 == 0 & matrix2 == 255))
c <- length(which(matrix1 == 255 & matrix2 == 0))
d <- length(which(matrix1 == 0 & matrix2 == 0))
KSS <- ((a*d)-(b*c))/((a+c)*(b+d))
我用 for 循环试过了,但没用。
for (i in c(1:255)) {
matrix2[matrix2 >i] <-255
matrix2[matrix2 <= i] <-0
}
感谢您的帮助!
【问题讨论】: