matlab怎么在特定位置产生均匀分布
展开全部
%定义单位向量
k1=[1,0,0];
k2=[0,1,0];
k3=[0,0,1];
%设:圆心明洞粗(0 0 0),半径2,求5个满足要求的点.
for ii=1:5
p=-2+rand(1,3)*4;
激镇颤模 new_pt=[0,0,0]+p(1)*k1+p(2)*k2+p(3)*k3;
res(ii,:)=new_pt;
end
运行后得:
res =
0.7333 -1.1498 1.3570
0.5151 -1.4649 -1.1715
0.4288 0.5196 -0.5181
0.3006 -0.1943 -1.8244
-1.8913 -0.7493 -1.9485
k1=[1,0,0];
k2=[0,1,0];
k3=[0,0,1];
%设:圆心明洞粗(0 0 0),半径2,求5个满足要求的点.
for ii=1:5
p=-2+rand(1,3)*4;
激镇颤模 new_pt=[0,0,0]+p(1)*k1+p(2)*k2+p(3)*k3;
res(ii,:)=new_pt;
end
运行后得:
res =
0.7333 -1.1498 1.3570
0.5151 -1.4649 -1.1715
0.4288 0.5196 -0.5181
0.3006 -0.1943 -1.8244
-1.8913 -0.7493 -1.9485
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rand函和判行数产生[0 1]区间的均匀分唤哗布,如果想产生冲桐任意区间范围[a b]内的均匀分布,则:
r = a + (b-a).*rand(1,100) 就可以了
r = a + (b-a).*rand(1,100) 就可以了
追问
如果是二维空间呢
追答
二维空间的话不是有两个坐标么比如 [x y],x y 分别生成,如果x的范围是[a,b],y是[c d],对于每个点,
x = a + (b-a).*rand(1,1)
y = c + (d-c).*rand(1,1)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询