求两点间最短距离

时间:2021-12-25 19:55:39

求两点间最短距离

f1<-function(x){
lx<-length(x)
i<-x[lx]
j<-which.min(x[(i+1):(lx-1)])
k<-i+j
return(c(k,x[k]))
}
f2<-function(y){
n<-nrow(y)
yy<-cbind(y,1:n)
y1<-apply(yy[-n,],1,f1)
i<-which.min(y1[2,])
j<-y1[1,i]
return(c(y[i,j],i,j))
}
sigma<-function(b){
m<-matrix(nrow=b,ncol=b)
m<-ifelse(row(m)==col(m),0,rnorm(5)*100)
return(m)
}

方法二,针对距离没有重复值的情况

f<-function(x){
m<-min(x)
n<-which(x==m,arr.ind=T)
return(c(m,n))
}

arr.ind=T 表明返回值是矩阵的下标,即行数和列数