24小时热门版块排行榜    

查看: 819  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

高月smile

新虫 (初入文坛)

[交流] 模型 已有2人参与

大家好,由于课题需要,想做模拟计算,然而之前并未接触matlab的相关知识,因此请各位相助,看看如何使用matlab画出类似下图的随机分布图。为简化模型,只要两个不同半径的圆即可。谢谢了!!!

模型
模型.PNG
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

淘宝搜费老师

捐助贵宾 (小有名气)



小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by 高月smile at 2016-04-18 08:52:27
很感谢您提供了很好的思路,目前参照网上的matlab程序,已经画出了同一半径的不重叠的圆,然而还是不知道如何修正或重新写含有两个不同半径的圆的matlab程序。望您指导,谢谢您!
目前用的生成大圆的程序如下:
...

你这个程序不长,研究下它是怎么判断大圆的,学会思路才能编,你这样只复制张贴永远完不成的,要学会自己编。

发自小木虫Android客户端
4楼2016-04-18 15:23:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

淘宝搜费老师

捐助贵宾 (小有名气)



小木虫: 金币+0.5, 给个红包,谢谢回帖
这个需要编程,第一步产生随机数生成大圆圆心,然后去除叠加的,画大圆;然后同样方法画小圆。对楼主估计这个很难,主要难点在于判断重叠。函数百度搜画圆、产生随机数即可

发自小木虫Android客户端
2楼2016-04-17 23:09:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

高月smile

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 淘宝搜费老师 at 2016-04-17 23:09:29
这个需要编程,第一步产生随机数生成大圆圆心,然后去除叠加的,画大圆;然后同样方法画小圆。对楼主估计这个很难,主要难点在于判断重叠。函数百度搜画圆、产生随机数即可
...

很感谢您提供了很好的思路,目前参照网上的matlab程序,已经画出了同一半径的不重叠的圆,然而还是不知道如何修正或重新写含有两个不同半径的圆的matlab程序。望您指导,谢谢您!
目前用的生成大圆的程序如下:
function xy_pos = gen(n,b,r)
c=0;
xy_pos=[];
while c<n
x=rand*(b-2*r)+r;
y=rand*(b-2*r)+r;
if c==0
xy_pos=[x y];
c=c+1;
continue;
end
for i=1:size(xy_pos,1)
  if (xy_pos(i,1)-x)^2+( xy_pos(i,2)-y)^2<(r+r(i))^4*r*r+0.2
  elseif i==size(f,1);
c=c+1;
f=[f;x y];
end
  end
end
3楼2016-04-18 08:52:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

高月smile

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 淘宝搜费老师 at 2016-04-18 15:23:37
你这个程序不长,研究下它是怎么判断大圆的,学会思路才能编,你这样只复制张贴永远完不成的,要学会自己编。
...

对于以上程序基本上已经熟悉理解了,然而初学还是感到吃力,能推荐一些与此相关的资料吗?我先学习学习。谢谢您!!!
5楼2016-04-18 19:20:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见