MATLAB(產生隨機數,並畫圖)

時間 2021-07-01 01:33:32

1樓:匿名使用者

第一個問題,執行下面的**就都有了。

x=10*rand(1,1000);

t=1:1000;

plot(t,x);

max_rand=max(x);

min_rand=min(x);

mean_rand=mean(x);

segma=std(x);

第二個,執行下面**:

a=[0 1 0;1 0 0;0 0 1];

b=[1 0 0;0 0 1;0 1 0];

c=[1 -4 3;2 0 -1;1 -2 0];

x=a^-1*c*b^-1

得:x =

2 -1 0

1 3 -4

1 0 -2

2樓:在天姥山耍空竹的銀河

1.如2樓所示,正解

2.2樓的也正確。也可以如下表示

輸入a=[0 1 0;1 0 0;0 0 1];

b=[1 0 0;0 0 1;0 1 0];

c=[1 -4 3;2 0 -1;1 -2 0];

d=inv(a);

e=inv(b);

x=c*d*e;

3樓:匿名使用者

(1)i=1:1000;

x=10*rand(1,1000);

plot(i,x);

max=max(x);

min=min(x);

mean=mean(x);

segma=std(x);

(2)a=[0 1 0;1 0 0;0 0 1];

b=[1 0 0;0 0 1;0 1 0];

c=[1 -4 3;2 0 -1;1 -2 0];

x=inv(a)*c*inv(b)

4樓:匿名使用者

a=rand(1,1000)*10;%%這是產生1000個隨機數

matlab 如何產生 0 1 之間的1000個正太分佈隨機數 並畫圖

5樓:

randn([1,1000]),表示在【0,1】間生成1*1000的隨機正態分佈矩陣,在workspace裡點

一下返回值(預設為ans),然後在專plots那裡就會提供各種屬**圖形的了(基於2015a版本)

matlab產生隨機數問題

6樓:long1209龍是我

第一個問題,執行

下面的**就都有了。

x=10*rand(1,1000);

t=1:1000;

plot(t,x);

max_rand=max(x);

min_rand=min(x);

mean_rand=mean(x);

segma=std(x);

第二個,執行下面**:

a=[0 1 0;1 0 0;0 0 1];

b=[1 0 0;0 0 1;0 1 0];

c=[1 -4 3;2 0 -1;1 -2 0];

x=a^-1*c*b^-1

7樓:匿名使用者

用rand吧。rand產生0到1之間的隨機數。

舉個例子,假設需要1到5之間100個數。

1+(5-1)*rand(1,100)就行了。rand(a,b)表示a行b列

8樓:我叫大黃瓜

如樓上所說的用rand(平均分佈)或者randn(正態分佈)先產生0-1的隨機數,如果要看和的統計值直接bar就可以了

9樓:敏語出樂意

是嗎?看看我的

。>>

a=floor(10*rand(4,5)-5)a=4334

4-32-1

241-1

1-4-1-1-52

-13>>

a=floor(10*rand(4,5)-5)a=-5-4

-3-13-2

-3-440

3-4-5-1

-3-512

-11>>

a=floor(10*rand(4,5)-5)a=33

-2-2

-2-50-4

0312

-4-43-2

-1110

10樓:小三太撫媚丶

在matlab中用來產生指數分佈隨機數的函式是exprnd( );

語法:1. r=exprnd(mu)

生成服從引數為mu的指數分佈隨機數。

2. r=exprnd(mu,m)

生成服從引數為mu的指數分佈的隨機數矩陣,矩陣的形式由m定義。

例如,n=exprnd(5,[1 6])

3. r=exprnd(mu,m,n)

生成m×n形式的指數分佈的隨機數矩陣。

當產生的陣列是一維向量時,若想排序可以利用sort(a)函式,a為隨機陣列,預設的結果是升序排列。

如果排序後還需要保留原來的索引可以用返回值,即[b,ind]=sort(a),計算後,b是a排序後的向量,a保持不變,ind是b中每一項對應於a 中項的索引。

若想對a陣列進行降序排列,先用x=eye(n)生成一個n維的單位陣,然後用x=rot90(x)將其旋轉為次對角線的單位陣,再用原來矩陣乘以x即可,如要講a逆序排列採用如下步驟:

x=eye(size(a));

x=rot90(x);

a=a*x;

matlab產生隨機數並迴圈

11樓:匿名使用者

1. matlab 函式 rand

產生在區間 (0, 1)的均勻隨機數,它是平均分佈在 (0,1)之間。一個稱為seed的值則是用來控制產生隨機數的次數。均勻隨機數函式的語法為rand(n),rand(m,n),其結果分別產生一矩陣含n×n個隨機數和一矩陣含m×n的隨機數。

注意每次產生隨機數的值都不會一樣,這些值代表的是隨機且不可預期的,這正是我們用隨機數的目的。我們可利用這些隨機數代入算式中,來表示某段訊號的不規則振幅或是某個事件出現的機率。均勻隨機數其值平均的分佈於一區間的特性可以從其統計密度函式(probabilitydensity function, pdf)說明。

從其pdf分佈類似長條圖的分佈,可以看出其每一個隨機數值出現的機率皆相同,所以它被稱為均勻隨機數。

見以下的例子:

>> rand(1,6) % 第一次使用隨機數產生器

ans =

0.2190 0.0470 0.6789 0.6793 0.9347 0.3835

>>hist(ans) % 看看長條圖的長相

>>plot(ans) % 比較上個圖與這個圖有何差異?何者能代表不規則資料的分佈

>> rand(1,6) % 第二次使用隨機數產生器,注意每次產生的隨機數值皆不同

ans =

0.5194 0.8310 0.0346 0.0535 0.5297 0.6711

因為每次隨機數產生的值皆不同,如果因為驗證算式需要確定所使用的隨機數值是相同的,可以利用seed這個選項,用以設定使用計算隨機數產生器的起始值,其語法為rand('seed',n),n的規定是。其中n=0有特別意義是使用第一次產生隨機數值的起始值(=931316785),其它的n值即是所使用起始值。如果使用相同的起始值,則隨機數值會一樣,因為隨機數的計算是依據起始值。

請看以下的例子:

>> rand('seed',0) % 將隨機數值的起始值重設,相當於是第一次產生隨機數值

>>rand('seed') % 顯示現在使用的 seed 值=931316785

ans =

931316785

>> rand(2,3) % 注意隨機數值的上下限介於 [0,1] 區間

ans =

0.2190 0.6789 0.9347

0.0470 0.6793 0.3835

>> rand('seed') % 顯示再產生隨機數值所用的seed=412659990

ans =

412659990

>> rand('seed',0)

>> rand(1,6)

ans =

0.2190 0.0470 0.6789 0.6793 0.9347 0.3835

>> rand('seed',100) % 設定隨機數值的起始值=100

>> rand('seed')

ans =

100>> rand(2,5)

ans =

0.2909 0.0395 0.3671 0.5968 0.9253

0.0484 0.5046 0.9235 0.8085 0.3628

如果需要產生隨機數值不是介於[0,1]區間,可以採用以下步驟將隨機數值從[0,1]區間轉換到其它區間。假設要得到一組隨機數值是介於[2,4]區間,我們先產生一組隨機數介於[0,1]區間 ,再將其值乘以2,因為2等於區間上下限的差值(4-2)。接著再加上下限值(2),即可得到隨機數值是介於[2,4]區間。

例如區間為[a,b],a為下限值,b為上限值。則算式如下

x=(b-a)*r + a,

其中x代表轉換後的隨機數值的陣列。請看下列示範:

>>data_1 = 2*rand(1,500)+2; %原隨機數值有500個

>>plot(data_1) %這個圖是否看來眼熟?

>>axis([1 500 0 6]) %調整橫軸/縱軸上下限

>>hist(data_1) %看看其長條圖

2. matlab 函式randn

產生常態隨機數,它是以高斯分佈在隨機數出現的上下限區間。常態隨機數其值分佈於一區間的特性可以從其統計密度函式(pdf)說明。從其 pdf分佈可以看出其每一個隨機數值出現的機率皆不相同,靠近中間的隨機數值出現的機率比起兩端的值要高,這是一般不規則現象較可能出現的情形,所以它被稱為常態隨機數。

由於常態隨機數並非以上下限來定義,它是用資料的平均值和方差定義之。因此在產生一常態隨機數時,需設定平均值和方差的大小。randn(n)和randn(n,m)是分別產生一矩陣含n×n個隨機數和一矩陣含m×n的常態隨機數,其平均值為0方差為1。

見以下的例子:

>> x=-2.9:0.2:2.9; % 這個例子用到 hist 函式來畫出二種隨機數的分佈圖

>> y=randn(1,5000);

>> hist(y,x)

>> title('histogram of normal random data')

>> y1=rand(1,5000);

>> hist(y1,x)

>> title('histogram of uniform random data')

如果需要產生常態隨機數值的平均值和方差並非0和1,可以採用以下步驟將平均值和方差做轉換。假設要得到一組常態隨機數值的平均值為b和方差為a,我們先產生一組隨機數r,再將其值乘以方差a。接著再加平均值b。

算式如下:

x=a*r + b

其中x代表轉換後的隨機數值的陣列。請看下列示範:

>>data_2 = randn(1,500)+3 %原隨機數值有500個

>>plot(data_2) %這個圖是否看來眼熟?

>>axis([1 500 0 6])

>>hist(data_2) %看看其長條圖

3.randperm(n)

產生一個1到n之間自然數的隨機排列

4.randint(m,n,[1 n])

生成m×n的在1到n之間的隨機整數矩陣,其效果與randint(m,n,n+1)相同。

matlab產生隨機數問題,matlab產生隨機數

化學工程 是嗎?看看我的。a floor 10 rand 4,5 5 a 4 3 3 4 4 3 2 1 2 41 1 1 4 1 1 5 2 1 3 a floor 10 rand 4,5 5 a 5 4 3 1 3 2 3 4 4 03 4 5 1 3 5 1 2 1 1 a floor 10 ...

matlab產生隨機數,急求matlab產生隨機數

matlab用命令rand可以產生0 1的隨機數,用線性變換即可,y ax b x 0,y 15 x 1,y 30 a 15,b 15,如果你要的是整數,取整,用round,rand 1,50 ans columns 1 through 11 0.9134 0.6324 0.0975 0.2785 ...

js怎麼產生隨機數,Js怎麼產生隨機數?

js可以用math.random 函式產生隨機數,這裡以產生1到5之間的隨機數為例。1 產生最小到最大之間的函式,包括最小值和最大值,即 min r max 2 產生最小到最大之間的函式,包括最小值但不包括最大值,即 min r max 3 產生最小到最大之間的函式,不包括最小值但包括最大值,即 m...