作者jatj ()
看板MATLAB
标题Re: [讨论] 请教在限定区域内随机选点问题
时间Tue May 14 03:34:35 2013
抱歉推文不清楚 直接回答可能比较快
想法是把所有可能125*200方格内组合列出来 随机选取来检查是否落在三角形内
想法可以是
tx=δ:δ:125-δ; ty=δ:δ:200-δ;
idx=randperm(numel(tx)*numel(ty)); % 乱数排列的顺序
之後for, while 皆可 我这用for
for i = 1:length(idx)
[IX,IY]=ind2sub([numel(tx), numel(ty)],idx(i)); % X, Y分别取什麽
if {tx(IX) ty(IY) 落在你要的三角形内}
break %满足条件, 跳出for
end
end
之後tx(IX) ty(IY) 即为你的解
※ 引述《wwe00222 (hao)》之铭言:
: http://imgur.com/ByfHnxS
: 我想在一个三角型区域内(不能超出),随机选一个点,点的位置如图中安排所表示
: 共14个点
: 每个点(x1,y1)之间的间隔是δ=25mm
: 能不能建立一条数学式当我输入一个δ就能自动建立出点(x1,y1)
: 并随机选取
: 小弟想法是不断使用 if .....elseif....elseif.....end 去判断
: 但试了结果都不做不出来
: 请教有人能帮忙解答吗 谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.97.89.159
1F:推 wwe00222:先感谢你的帮忙! 但还是有些地方不太懂 05/14 10:00
2F:推 wwe00222:在执行idx=rendperm(nume1(tx)*nume1(ty)); 05/14 10:10
3F:→ wwe00222:出现Undefined function or method 'nume1' 05/14 10:11
4F:→ wwe00222:for input arguments of type 'double'的错误 05/14 10:12
5F:→ wwe00222:还有在最後 if 後面的判别式中是写那条约束的数学式吗? 05/14 10:14
6F:→ wwe00222:谢谢~~ 05/14 10:15
7F:→ jatj:numel 我好像打成1了 是"L" 05/14 10:39
8F:→ jatj:判断式就判断点是不是落在三角形中 仔细想想应该不难 05/14 10:39