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一個很少的值...