Re: [問題] 如何生程0101的訊號已回收

看板MATLAB作者 (11-11台灣新國慶)時間16年前 (2009/02/11 19:24), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
無聊測了一下時間上的問題 我做了幾個實驗 我的環境設計如下 迴圈的圈數為n圈,每一執行一次迴圈,就產生n個亂數訊號 所以整個迴圈跑完之後,可以產生n*n個訊號 會這樣切,是因為我的ram不夠大,如果一次產生n*n會頓到不行,實驗起來不公平 然後我的n設為10000 結果如下 1----------------------------------- round(rand(1,n)) Elapsed time is 8.137215 seconds. 2----------------------------------- rand(1,n)>0.5 Elapsed time is 2.645975 seconds. 3----------------------------------- uint8(rand(1,n))>0.5 Elapsed time is 7.061500 seconds. 4----------------------------------- logical(rand(1,n))>0.5 Elapsed time is 2.681742 seconds. 5----------------------------------- double(rand(1,n))>0.5 Elapsed time is 2.648078 seconds. 6----------------------------------- uint16(rand(1,n))>0.5 Elapsed time is 11.451199 seconds. 7----------------------------------- randint(1,n) Elapsed time is 8.060679 seconds. 可以發現 1. rand(1,n)>0.5 2. logical(rand(1,n))>0.5 3. double(rand(1,n))>0.5 用這三個速度上可能會比較快 -- 我的貓順順:http://www.wretch.cc/album/album.php?id=ZheweiXu&book=14  ◣ ◢ ▂▃▃▃▃▃▃▄▄▄▄▄▄▄▃▃▃▃▃▂  ● ●  ╴▁▂▃▄▅▆▇████████████████████▇▆▅▄▃▂▁╴ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.102.162 ※ 編輯: zhewei 來自: 61.64.102.162 (02/11 19:25)

02/12 23:39, , 1F
後面>0.5 表示什麼??
02/12 23:39, 1F

02/14 00:48, , 2F
因為rand會產生一個介於0-1的數值!所以取0.5就一半半!
02/14 00:48, 2F

02/14 00:49, , 3F
如果條件成立值就會為1反之值為0,所以就能得到0101的串列
02/14 00:49, 3F
文章代碼(AID): #19ahM2P7 (MATLAB)
文章代碼(AID): #19ahM2P7 (MATLAB)