matlab中random函式的用法

時間 2021-08-30 10:51:29

1樓:飛鷹

y = randn(n),返回一個n*n的隨機項的矩陣。如果n不是個數量,將返回錯誤資訊。

y = randn(m,n) 或 y = randn([m n]),返回一個m*n的隨機項矩陣。

y = randn(m,n,p,...) 或 y = randn([m n p...]),產生隨機陣列(感覺就是三維陣列,請看如下例子)。

2樓:南霸天

random格式:random(x);(註釋:x是個正整數)。

random功能:即可隨機產生0~x之間的一切整數。而且它是一個函式,不能單獨使用。

random舉例:

program exercise(input,output);

var i,a:longint;

begin

for i := 1 to 10 do

begin

a:=random(100);

write(a,' ');

end;

end.

3樓:匿名使用者

matlab中random函式——通用函式,求各分佈的隨機資料,其用法:

y = random('norm',a1,a2,a3,m,n)

式中:a1,a2,a3為分佈的引數,m,n用來指定隨機數的行和列,name的取值有相關的**來參照。

例:產生一個3行4列均值為2、標準差為0.3的正態分佈隨機數:

>>y =random('norm',2,0.3,3,4)

y =2.1613 2.2587 1.8699 2.8308

2.5502 2.0956 2.1028 1.5950

1.3223 1.6077 3.0735 2.9105

matlab中random函式的問題

4樓:匿名使用者

產生一個3行3列的隨機數矩陣。

隨機數服從0-10之間的均勻分佈 ,即x~u(0,10)。

matlab random函式 uniform引數 比如random('uniform',2,28,1,30)中個引數的含義是什麼

5樓:

random可以自帶引數,以滿足你所需要的概率分佈,比如:指數分佈,高斯分佈,柯西分佈等等。

而uniform則是均與分佈,引數也可寫成unif。根據均勻分佈的表示式,它的上下限是需要有個範圍的。這裡的下限是2,上限是28。

自變數x在[2,28]內取值。總計生成一個行向量。

在matlab中r = random('normal',0,1,2,4): 生成期望為 0,標準差為 1 的(2 行 4 列)2× 4 個正態隨機數

6樓:我行我素

r = random('normal',0,1,2,4)r =1.6949 -0.4789 -0.2871 -0.2937

-1.6471 -1.4904 0.1958 -1.0145

>> std2(r)

ans =

1.0619

從上面來

可以看出,

生成的自矩陣r的方差並不是1.

其實,在生成均值為0,方差為1的隨機數時,matlab要遵守一定的演算法,這個演算法保證在資料量非常大時,其均值為0,方差為1,但並不能保證資料量非常小時,計算其均值和方差也是0和1,如上題。再如

r=randn(1000);mean2(r),std2(r)ans =

-0.0023

ans =

0.9992

r=randn(2000);mean2(r),std2(r)ans =

-1.0444e-004

ans =

1.0001

7樓:匿名使用者

r = random('normal',0,1,2,4)確實是產生標準正態分佈,(2行4列)

但std2(r)通常不內會正好為容1,而是大約為1.

產生正態分佈是指你產生的這些點,是以正態分佈方式產生,而不是產生出來就完全服從正態分佈,但可以肯定基本服從正態分佈,也就是一定置信區間內符合正態分佈。

例如:r =

-0.6918 1.2540 -1.4410 -0.3999

0.8580 -1.5937 0.5711 0.6900

ans =

1.0886

接近1,但不是1.

換個容易理解的,你要產生0到1的均勻分佈(1行4列),如

>> rand(1,4)

ans =

0.8147 0.9058 0.1270 0.9134

很明顯的,你產生的4個數分佈不是均勻的等差分佈,但其產生的方式是0到1內均勻的,產生每個數的概率是相等的。

明白?至於random的功能,可以

>>help random

matlab中 rand和 randn的區別,請分別舉例。

8樓:歷史小店

主要區別

(1)rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數,rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以是'single',  rand(randstream,m,n)利用指定的randstream(我理解為隨機種子)生成偽隨機數。

(2)randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)主要語法:和上面一樣

(3)randi 生成均勻分佈的偽隨機整數主要語法:randi(imax)在開區間(0,imax)生成均勻分佈的偽隨機整數,randi(imax,m,n)在開區間(0,imax)生成mxn型隨機矩陣,  r = randi([imin,imax],m,n)在開區間(imin,imax)生成mxn型隨機矩陣

9樓:

關鍵問題不是用法而是意義,rand是0-1的均勻分佈,randn是均值為0方差為1的正態分佈用法自己help rand或者help randn一下就知道了rand(n)或randn(n)生成n*n的隨機數矩陣rand(n,m)或randn(m,n)生成m*n的隨機數矩陣

10樓:匿名使用者

rand是平均分佈,即等概率分佈,等概率產生0-1範圍內的數

randn是標準正態分佈,均值為0,標準差為1

11樓:shine戚七七

1,rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間

主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數

rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以

是'single'

rand(randstream,m,n)利用指定的randstream(我理解為隨機種子)生成偽

隨機數2,randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)

主要語法:和上面一樣

3, randi 生成均勻分佈的偽隨機整數

主要語法:randi(imax)在開區間(0,imax)生成均勻分佈的偽隨機整數

randi(imax,m,n)在開區間(0,imax)生成mxn型隨機矩陣

r = randi([imin,imax],m,n)在開區間(imin,imax)生成mxn型隨機矩陣

12樓:匿名使用者

前者是0到1的均勻分佈,後者是標準正態分佈

13樓:百慕大的小魚

randi(imax)在閉區間(0,imax)生成均勻分佈的偽隨機整數

randi(imax,m,n)在閉區間(0,imax)生成mxn型隨機矩陣

r = randi([imin,imax],m,n)在閉區間(imin,imax)生成mxn型隨機矩陣

matlab在一定範圍內生成隨機數

14樓:匿名使用者

rand([m n])產生 m行,n列(0,1)範圍內均勻分佈的偽隨機數

如果要求在區間(a,b)內產生均勻分佈的隨機數

r = a + (b-a).*rand([m n]));

matlab怎麼畫複數函式,matlab 中複數如何表示?我i前面已經有 就是表示不出來 不知到為什麼

我叫王土土豆 1 雙擊matlab軟體圖示,開啟matlab軟體,可以看到matlab軟體的介面。2 建立一個陣列u u 0 0.2 6 表示從0到6,每個0.2取一個數字。3 建立一個複數v,v 0.02 i。4 使用u和v建立一個複數函式z z exp v u 5 使用函式feather z 繪...

matlab傳遞函式問題,matlab中simulink傳遞函式的建模問題

給你我的一個我曾經編的超前校正的程式,可能有用 對於函式功能不懂的,可以使用help命令 function gc blead g,kc,dpm dpm 50 相位裕度 角度 包含5度的安全裕量 kc 1 設定開環增益 g tf 48e 3 48 1e 9 1e 6 2e 3 1 生成待校正系統傳遞函...

MATLAB中的DEBLANK函式

多瑙的萊茵 deblank函式是用來刪除字串中尾部空格的一個函式。在matlab中輸入help deblank就可以檢視其用法,在裡面都有詳細介紹。matlab處理字串的函式還有 strcmp 比較兩個字串是否完全相等,是,返回真,否則,返回假 strncmp 比較兩個字串前n個字元是否相等,是,返...