Re: [討論] 請教在限定區域內隨機選點問題

看板MATLAB作者時間12年前 (2013/05/14 03:34), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串2/3 (看更多)
抱歉推文不清楚 直接回答可能比較快 想法是把所有可能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

05/14 10:00, , 1F
先感謝你的幫忙! 但還是有些地方不太懂
05/14 10:00, 1F

05/14 10:10, , 2F
在執行idx=rendperm(nume1(tx)*nume1(ty));
05/14 10:10, 2F

05/14 10:11, , 3F
出現Undefined function or method 'nume1'
05/14 10:11, 3F

05/14 10:12, , 4F
for input arguments of type 'double'的錯誤
05/14 10:12, 4F

05/14 10:14, , 5F
還有在最後 if 後面的判別式中是寫那條約束的數學式嗎?
05/14 10:14, 5F

05/14 10:15, , 6F
謝謝~~
05/14 10:15, 6F

05/14 10:39, , 7F
numel 我好像打成1了 是"L"
05/14 10:39, 7F

05/14 10:39, , 8F
判斷式就判斷點是不是落在三角形中 仔細想想應該不難
05/14 10:39, 8F
文章代碼(AID): #1HaK1Erw (MATLAB)
文章代碼(AID): #1HaK1Erw (MATLAB)