[問題] 關於使用產生出來的rand亂數已回收

看板MATLAB作者 (十三)時間14年前 (2010/08/25 14:06), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
已爬文 好像找不到我的問題 不知道是不是太簡單... 目標是使用uniform distribution random variable 產生normal distribution random variable 假設我需要10個 我先用rand(10,1)產生兩組10個uniform分布在0~1的數字 然後再用normal和uniform的轉換式子轉成normal X = sqrt(-2*log(U))*cos(2*pi*V) 其中U,V是產生的uniform隨機分布數字 X是欲求的normal隨機分布數字 但是因為我製造的U和V各有10個 因此產生的是一個矩陣 我想如法炮製產生一組X 裡面有10個normal的矩陣 上面的運算方法matlab無法通過 似乎不能直接對矩陣裡的10個數字作轉換再跑出一個10by1的normal分布矩陣 不知道有沒有解決方法? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.90.100

08/25 14:16, , 1F
sqrt(-2*log(U)).*cos(2*pi*V) 改".*"
08/25 14:16, 1F

08/25 14:18, , 2F
成功了 感謝一樓!!! 可以稍微講一下是為什麼嗎orz
08/25 14:18, 2F

08/25 14:32, , 3F
用"*"是矩陣相乘,用".*"是vector array 相對位置的值相乘
08/25 14:32, 3F

08/25 14:33, , 4F
".*"給一個例子,[1,2,3].*[3,4,5]=[1*3,2*4,3*5]
08/25 14:33, 4F

08/25 14:34, , 5F
在你的例子裡,矩陣相乘是不可行的
08/25 14:34, 5F

08/26 01:10, , 6F
感激不盡!!
08/26 01:10, 6F
文章代碼(AID): #1CTBBwps (MATLAB)