행렬의 두 원소를 모두 추출하여 그 결과를 행렬로 반환하여 계산식에서 수식으로 답을 줄 수있는 방법 :유클리드 거리를 계산하기 위해 r의 행렬에있는 두 원소를 차례로 추출합니다.
[,1][,2][,3][,4][,5][,6]
[1,] 2 1 5 5 10 1
난 등 열에 1 개의 첫 번째 반복에서, 3, 4 번째 반복과 압축을 :
예를 들어, I는 6 열이 하나의 행의 행렬을 갖는다. 그 결과는 매트릭스 형태 여야합니다.
[1,] 2 1
[2,] 5 5
[3,] 10 1
내 원래 코드 :
data <- matrix(c(1,1,1,2,2,1,2,2,5,5,5,6,10,1,10,2,11,1,11,2), ncol = 2)
센터 매트릭스 :
[,1][,2][,3][,4][,5][,6]
[1,] 2 1 5 5 10 1
[2,] 1 1 2 1 10 1
[3,] 5 5 5 6 11 2
[4,] 2 2 5 5 10 1
[5,] 2 1 5 6 5 5
[6,] 2 2 5 5 11 1
[7,] 2 1 5 5 10 1
[8,] 1 1 5 6 11 1
[9,] 2 1 5 5 10 1
[10,] 5 6 11 1 10 2
objCentroidDist <- function(data, centers) {
resultMatrix <- matrix(NA, nrow=dim(data)[1], ncol=dim(centers)[1])
for(i in 1:nrow(centers)) {
resultMatrix [,i] <- sqrt(rowSums(t(t(data)-centers[i, ])^2))
}
resultMatrix
}
objCentroidDist(data,centers)
내가 결과 행렬은 아래에 따라 할 것을 권장합니다
[1,][,2][,3]
[1,]
[2,]
[3,]
[4,]
[5,]
[7,]
[8,]
[9,]
[10]
나의 관심사입니다, 데이터 센터 거리를 계산하는 방법 데이터 행렬의 ns는 2이고, 중심 행렬은 6이다. (데이터 행렬과 중심 행렬의 두 열마다 거리를 계산). 중심 행렬의 각 행에는 3 개의 중심이 있습니다.
"도움이 필요합니다."는 질문이 아닙니다. 귀하의 문제가 신비한 예외인지 또는 언어의 단어 (또는 그 중간에있는 단어)를 알지 못하기 때문에 알 수 없기 때문입니다. * 당신이 필요로하는 것이 무엇인지 정확하게 지정하기 위해 질문을 편집하십시오. –
행렬의 경우'matrix (mat, ncol = 2, byrow = TRUE)'입니다. 'split (mat, rep (seq (length (mat)/2), each = 2))' – alistaire