require(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) %>% sqrt()
}
}
最近在implement knn 的 distancematrix
想在厚臉皮的問問看
這種常見的操作要怎麼 轉成非迴圈寫法
我用迴圈寫塞的好慢喔
我自己只想到這樣 就卡住了
(matrix(rep(Xtest[1,],nrow(Xtrain)),ncol=ncol(Xtrain),byrow = T)-Xtrain)^2
%>% apply(X=. ,1,sum)%>%sqrt