Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环从均匀分布确定两点之间的距离_R - Fatal编程技术网

使用for循环从均匀分布确定两点之间的距离

使用for循环从均匀分布确定两点之间的距离,r,R,如果Xm~uniform(-25,25)、Ym~uniform(-25,25)和r~uniform(0,25)、θ~uniform(0,2π)和Xf=rcosθ,Yf=rsinθ 我想使用for循环创建5000个点(Xm,Ym)和(Xf,Yf)的独立变量,然后计算两点之间的距离。我知道如何计算点之间的距离,但创建5000个(Xm,Ym)和(Xf,Yf)的实现我发现很棘手。以下是我的尝试: 现在对于Xf,Yf,我采用了与Xm,Ym类似的方法 for (i in 1:5000) { res=c()

如果Xm~uniform(-25,25)、Ym~uniform(-25,25)和r~uniform(0,25)、θ~uniform(0,2π)和Xf=rcosθ,Yf=rsinθ

我想使用for循环创建5000个点(Xm,Ym)和(Xf,Yf)的独立变量,然后计算两点之间的距离。我知道如何计算点之间的距离,但创建5000个(Xm,Ym)和(Xf,Yf)的实现我发现很棘手。以下是我的尝试:

现在对于Xf,Yf,我采用了与Xm,Ym类似的方法

for (i in 1:5000)
{
res=c()
repeat{
Xm=runif(1,min=-25,max=25)
Ym=runif(1,min=-25,max=25)
if(Xm**2+Ym**2<=25**2)
res=rbind(res,data.frame(Xm,Ym))
break
{
  res=rbind(res,data.frame(Xm,Ym))
}



    for (i in 1:5000)
    {
    res=c()
    repeat{
   R=runif(1,min=0,max=25)
0=runif(1,min=0,max=2*pi)
    Xf=Rcos(0)
    Yf=Rsin(0)
    Yf=runif(1,min=-25,max=25)
    if(Xf**2+Yf**2<=25**2)
    res=rbind(res,data.frame(Xf,Yf))
    break
    {
      res=rbind(res,data.frame(Xf,Yf))
    }

     D=sqrt((Xm-Xf)**2+(Ym-Yf)**2))
for(1:5000中的i)
{
res=c()
重复{
Xm=runif(1,最小值=-25,最大值=25)
Ym=runif(1,最小值=-25,最大值=25)

如果(Xm**2+Ym**2这里是一种无回路的方法:

# Yours data
set.seed(9) # Just for reprodutibility

npoints = 5000

# Vectors with 5000 points
Xm=runif(n = npoints,min=-25,max=25)
Ym=runif(n = npoints,min=-25,max=25)

theta = runif(n = npoints, min = 0, max = 2*pi)
R = runif(n = npoints,min = 0, max = 25) 
Xf = R*cos(theta)
Yf = R*sin(theta)

D = sqrt((Xm-Xf)^2+(Ym-Yf)^2)

你真的需要它成为一个循环吗?你可以使用
sample()
获得5000个Xm点,或者在相同的
runif(n=5000)