1樓:匿名使用者
小數開方偽隨機數發生器 randmtx = randui(10, 10, 10000, 0, 1)
row 偽隨機數矩陣的行數。
col 偽隨機數矩陣的列數。
seed 種子。
k1, k2 生成的偽隨機數的範圍。
function randmtx = randu2(row, col, seed, k1, k2)
if nargin < 3
seed = 11;
endm = 4;
seed2 = sqrt(seed);
while seed2 < 1
seed2 = seed2 * 10;
endn = round(seed2/m);%返回最接近seed2/m的整數。
x = 10^n)*seed2;
randmtx(1,1) =x - floor(x);
for i = 2:row*col
temp = sqrt(abs(randmtx(1,i-1)))
if temp ==0
temp = eps;
endwhile temp < 1
temp = temp * 10;
endn = round(temp/m);
x = 10^n)*temp;
randmtx(1,i) =x - floor(x));
endrandmtx = reshape(randmtx, row, col);
if nargin < 4
return
endrandmtx = randmtx * k2 - k1) +k1;
matlab中如何產生非偽隨機數,即真正的隨機數怎麼生成,求高手指點
2樓:白衣太史
真正的抄。
隨機數只能通過硬體實。
現,通襲過軟體實現的都是偽隨機數。
真正的隨機數是得通過現實世界中隨機發生的物理事件來產生的,如放射性物質隨機數發生器是通過某種放射性物質放射出的粒子數來獲得隨機數,還有通過電路產生高頻雜訊來獲得隨機數等。不能每臺pc都買乙個硬體隨機數發生器。
在這種原因下,就出現了使用軟體方法來產生隨機數的演算法。通過軟體方法產生的隨機數都成為偽隨機數,因為它們都不是真正的隨機數。
所謂偽隨機數,就是找到一組數目巨大的數,這組數的出現符合一定的概率分佈,並且這組數能通過相應的隨機性測試,這樣我們就能使用這組數來湊合「頂替」真正的隨機數來應用了。matlab預設使用的隨機數生成演算法mersenne twister是目前較好的一種偽隨機數產生演算法,可以滿足很多場合的應用,如蒙特卡羅模擬等。
總之,matlab中是不可能產生非偽隨機數,即真正的隨機數的。
在simulink中偽隨機序列生成的值該怎麼辦
3樓:
摘要。您好,讓你久等了~~很高興為您解答哦殺在 simulink 中,可以使用「偽隨機數發生器」模組來生成偽隨機序列。該模組可以生成不同種類的偽隨機序列,例如線性反饋移位暫存器 (lfsr) 序列、加法迴圈移位暫存器 (acsr) 序列、多項式序列等等。
生成的偽隨機序列的具體值可以通過以下兩種方法獲得:1. 通過模組的輸出埠檢視:
在偽隨機數發生器模組中,有乙個輸出埠,通過該埠可以獲取生成的偽隨機序列的值。將該埠連線到 scope 或者 display 模組,就可以在 simulink 中檢視序列的值。2.
通過 matlab 命令檢視:可以在 matlab 命令視窗中使用「sim」函式來模擬 simulink 模型,然後使用「get_param」函式獲取偽隨機數發生器模組的輸出,最後通過「plot」函式繪製序列的圖形。例如,以下是乙個使用 lfsr 演算法生成偽隨機序列的 simulink 模型。
您好,讓你久等了~~很高興為您解答哦殺在 simulink 中,可以使用「偽隨機數發生器」模組來生成偽隨機序列。該模組可以生成不同種類的偽隨機序列,例如線性反饋移位暫存器 (lfsr) 序列、加法迴圈移位暫存器 (acsr) 序列、多項式序列等等。生成的偽隨機序列的具體值可以通過以下兩種方法獲得:
1. 通過模組的輸出埠檢視:在偽隨機數發生器模組中,有乙個輸出埠,通過該埠可以獲取生成的偽隨機序列的值。
將該埠連線到 scope 或者 display 模組,就可以在 simulink 中檢視序列的值。2. 通過 matlab 命令檢視:
可以在 matlab 命令視窗中使用「sim」函式來模擬 simulink 模型,然後使用「get_param」函式獲取偽隨機數發生器模組的輸出,最後通過「plot」函式繪製序列的圖形。例如,以下是乙個使用 lfsr 演算法生成偽隨機序列的 simulink 模型。
在該模型中,使用 lfsr 演算法生成乙個 16 位的偽隨機序列,並將序列的值輸出到 scope 模組。執行模型後,就可以在 scope 模組中檢視序列的值。另外,需要注意的是,由於偽隨機序列是通過演算法生成的,所以其值是可以**的。
如果需要更高的隨機性,可以考慮使用真隨機數生成器。
matlab產生偽隨機序列的問題
4樓:網友
計算機產生的隨機數列都是偽隨機數列。
都是基於某些演算法產生的一系列數。
通常新產生乙個隨機數是由前乙個已經生成的數得到的。
就是說隨機數列的產生就是乙個乙個數遞推的過程。
如果第乙個數定了,那整個數列就都定下來了,所以第乙個數通常稱為種子,seed
通常我們使用隨機數的時候,直接就可以用rand是從系統預設的隨機數流中去除若干個數來使用。
下次再用的時候,就會接著上次最後乙個數繼續生成新的隨機數。
而使用rand('state',key);就相當於固定了使用隨機數流的狀態。
產生的隨機數序列就一樣了。
如何得到MATLAB計算後的函式值
因為你沒有說明是什麼具體的函式,我就以多項式函式為例吧!matlab中有個函式叫polyval,用來計算多項式在某點的函式值。示例程式 我們有多項式 f x 3 x 2 2 x 1計算此函式在x 5處的值的 p 321 polyval p,5 同樣的再舉個例子 用mean函式就可以求平均值了a 13...
如何執行matlab程式,matlab如何執行程式啊?
佘琇逯儂 兩種執行方法,一種直接複製到command視窗內,就是 這個符號的後面 一種是放在m檔案裡,但是執行時必須在m檔案所在的目錄下才能執行 大哥你少了個賦值的運算,你的執行環境沒錯,就如樓上的,但是你想看的是結果。資料空間中的結果已經執行出來了。1.你如果是在command window中執行...
matlab如何描點畫圖,matlab 如何描點畫圖 10
智者總要千慮 x 5 5 40 y 0.02 0.04 0.058 0.081 0.103 0.121 0.135 0.154 plot x,y 導超 分析,首先畫出離散點,再進行擬合。用直線擬合。x 5 10 15 20 25 30 35 40 y 0.02 0.04 0.058 0.081 0....