作者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
推 wwe00222:先感謝你的幫忙! 但還是有些地方不太懂 05/14 10:00
推 wwe00222:在執行idx=rendperm(nume1(tx)*nume1(ty)); 05/14 10:10
→ wwe00222:出現Undefined function or method 'nume1' 05/14 10:11
→ wwe00222:for input arguments of type 'double'的錯誤 05/14 10:12
→ wwe00222:還有在最後 if 後面的判別式中是寫那條約束的數學式嗎? 05/14 10:14
→ wwe00222:謝謝~~ 05/14 10:15
→ jatj:numel 我好像打成1了 是"L" 05/14 10:39
→ jatj:判斷式就判斷點是不是落在三角形中 仔細想想應該不難 05/14 10:39