library(magrittr)
data(iris)
set.seed(1)
data <- iris[sample(nrow(iris)), ] # 打散資料
Xtrain <- data[1:100, 1:4]
Xtest <- data[101:150, 1:4]
M <- nrow(Xtrain)
N <- nrow(Xtest)
# 雙層迴圈
distmatrix <- matrix(0, nrow = M, ncol = N)
for (i in 1:M) {
for (j in 1:N) {
distmatrix[i, j] <-
sum((Xtrain[i,] - Xtest[j,]) ^ 2) %>%
}
} # 約五秒
# 改成展開所有配對的二個大矩陣;不用迴圈
res <-
(Xtrain[rep(1:M, N),] - Xtest[rep(1:N, each = M),]) ^ 2 %>%
rowSums %>%
matrix(M, N)
# 馬上算好不用等
identical(distmatrix, res) # 二種結果相同
# your code goes here
bGlicmFyeShtYWdyaXR0cikKZGF0YShpcmlzKQpzZXQuc2VlZCgxKQpkYXRhIDwtIGlyaXNbc2FtcGxlKG5yb3coaXJpcykpLCBdICMg5omT5pWj6LOH5paZClh0cmFpbiA8LSBkYXRhWzE6MTAwLCAxOjRdClh0ZXN0IDwtIGRhdGFbMTAxOjE1MCwgMTo0XQpNIDwtIG5yb3coWHRyYWluKQpOIDwtIG5yb3coWHRlc3QpCgojIOmbmeWxpOi/tOWciApkaXN0bWF0cml4IDwtIG1hdHJpeCgwLCBucm93ID0gTSwgbmNvbCA9IE4pCmZvciAoaSBpbiAxOk0pIHsKICBmb3IgKGogaW4gMTpOKSB7CiAgICBkaXN0bWF0cml4W2ksIGpdIDwtIAogICAgICBzdW0oKFh0cmFpbltpLF0gLSBYdGVzdFtqLF0pIF4gMikgJT4lIAogICAgICBzcXJ0CiAgfQp9ICMg57SE5LqU56eSCgojIOaUueaIkOWxlemWi+aJgOaciemFjeWwjeeahOS6jOWAi+Wkp+efqemZo++8m+S4jeeUqOi/tOWciApyZXMgPC0KICAoWHRyYWluW3JlcCgxOk0sIE4pLF0gLSBYdGVzdFtyZXAoMTpOLCBlYWNoID0gTSksXSkgXiAyICU+JQogIHJvd1N1bXMgJT4lCiAgc3FydCAlPiUKICBtYXRyaXgoTSwgTikKIyDppqzkuIrnrpflpb3kuI3nlKjnrYkKCmlkZW50aWNhbChkaXN0bWF0cml4LCByZXMpICMg5LqM56iu57WQ5p6c55u45ZCMCiMgeW91ciBjb2RlIGdvZXMgaGVyZQ==