[問題] 隨機模擬結果已回收

看板MATLAB作者 (Semper Fi!)時間14年前 (2010/07/08 17:40), 編輯推噓0(007)
留言7則, 4人參與, 最新討論串1/1
抱歉是新手Q___Q 我想知道該如何模擬(主要指令是甚麼?) 請問如果 t 1 2 3 4 5 6 ←時間點 ──┬─┬─┬─┬─┬─┐ A 0.1 0.3 0.4 0.6 0.7 0.9 ←停止機率 想模擬出到底會在哪一點停止?(每次模擬的結果會不一定) 我該用甚麼指令起頭呢? 我只知道機率會是p(i)=A(i) -- 借了"MATLAB程式設計與應用 張智星著" 但是目錄找不到"模擬"兩個字,是我找錯方向麼Q___Q -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.117.201 ※ 編輯: fff0722 來自: 140.134.117.201 (07/08 17:42)

07/08 17:47, , 1F
這是不公正骰子嗎
07/08 17:47, 1F
不是耶,我是簡化了想模擬一個人死亡年紀。

07/08 17:50, , 2F
rand一個亂數 再看他落在哪個區間即可
07/08 17:50, 2F
請問rand後要怎麼處理他原本有的機率呢? ※ 編輯: fff0722 來自: 140.134.117.201 (07/08 18:06)

07/08 18:23, , 3F
為什麼到0.9就停止?
07/08 18:23, 3F
我簡化的^^,最後會到1。 我目前寫出..... clear all; M= (載入2002年的死亡率) x=30 w=110 y=w-x C=rand(1,y) for i=1:y p(i)=M(i) if C(i)<p(i) life=1 %死亡 else life=0 %存活 end end 其結果已經可以出現在 Command Window 上 假設是 life = 0 life = 0 life = 0 life = 1 ← 第四年死亡 要如何才把life變成Workspace裡的表格之一呢? (或是能直接出現4??)

07/08 18:28, , 4F
取 0-0.9 的亂數, < 0.1 就在 1 停止, < 0.3 就在 2
07/08 18:28, 4F

07/08 18:28, , 5F
如此類推
07/08 18:28, 5F
※ 編輯: fff0722 來自: 140.134.117.201 (07/08 19:28)

07/09 17:39, , 6F
life(i) ?
07/09 17:39, 6F

07/09 18:16, , 7F
year=0;year=year+1;if C(i)<p(i);disp(year);break;end;
07/09 18:16, 7F
感謝各位,已經能跑出單數的亂數結果了。 但是無法用回圈算多次實驗(頭腦快爆了.....) N=10 %實驗次數 q(1)=0 for i=1:N for j=1:y q(j)=M(j) if C(j)<q(j) life(i)=j ←我用N=1到此可跑出隨機數字 break; end end end 可是當N變成10時, 數字就變成全部一樣 [49, 49, 49, 49, 49, 49, 49, 49, 49, 49] 要如何才能把這十個變成都是隨機數字? 終於弄出來了,感謝各位高手提點。 ※ 編輯: fff0722 來自: 123.240.17.45 (07/12 01:04)
文章代碼(AID): #1CDPpusP (MATLAB)