matlab中random函式的用法

2021-08-27 05:39:33 字數 4146 閱讀 6956

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中的LQR函式用法

以倒立擺控制器的設計為例 a 0 1 0 0 0 0 1 0 0 0 0 1 0 0 9 0 b 0 0.1 0 0.1 c 0 0 1 0 觀測角度d 0 q 1 0 0 0 0 1 0 0 0 0 10 0 0 0 0 10 r 0.1 由上面這個系統,可以計算出k k lqr a,b,q,r ...

matlab中max函式的用法問題

y,i max m,2 在 第抄2維方向上取最大值 襲,也就 是每bai行最du大值,結果存在y裡,zhii裡存的是每行最大值的dao列位置。m magic 3 m 8 1 6 3 5 7 4 9 2 y,i max m,2 y 879 i 132 matlab中max函式的結果是什麼?你可以分步去...

我想用matlab中fminbnd求函式極值。函式裡有個引數,我想多次修改引數值,求對應不同引數的

比如函式是ff x,r 你可以for r 1,3,4 x fminbnd x ff x,r x0 end matlab的fminbnd函式求出的最小值與實際最小值有誤差怎麼消除?本來fminbnd是基於數值計算的肯定存在舍入誤差我們可以增加引數 tolx 設定允許誤差的範圍專只要給err一個很少的值...