matlab中怎樣在A集合中產生任意分佈的隨機數?求詳細程式,謝謝

2021-07-01 01:38:05 字數 3628 閱讀 5923

1樓:

function output=getrandomdata(x)

a=[0,1,2,3,4,x,x+1,x+2,x+3,x+4,2*x+1,2*x+2,2*x+3,2*x+4,3*x+1,3*x+2,3*x+3,3*x+4,4*x+1,4*x+2,4*x+3,4*x+4];

index=randi(size(a,2),1,100);

output=a(1,index);

end儲存檔案getrandomdata.m檔案,可隨意呼叫,x值可自行設定

例如輸入

getrandomdata(4)

ans =

columns 1 through 19

12 5 6 0 4 4 3 4 0 8 19 4 0 1 14 17 4 7 19

columns 20 through 38

19 6 19 17 19 0 9 16 12 2 14 2 1 16 10 6 4 0 7

columns 39 through 57

1 3 9 18 7 8 6 17 4 9 3 13 10 8 14 11 10 7 1

columns 58 through 76

0 5 7 6 12 17 10 20 3 7 10 18 0 12 20 3 4 17 13

columns 77 through 95

14 14 8 4 12 13 17 16 7 3 1 18 18 7 12 10 10 19 8

columns 96 through 100

4 18 12 18 12

2樓:我行我素

x=5;

a=randi(5*x,1,100)

按上面語句試試

怎麼用matlab生成100個標準正態分佈的隨機數並畫出直方圖

3樓:

要返回100個在[0 1]上的正態隨copy機數就不能那麼做了可以建立索需要的分佈函式,例如這裡用標準正態分佈函式function y=nf(x)

y=exp(-x.^2/2)/sqrt(2*pi);

end然後在命令列輸入

r=rand(100,1)

n=nf(r)即可

至於繪圖

plot(r,n,'.')

4樓:思緒無痕

f=normrnd(0,1,1,100)

hist(f)

matlab如何程式設計產生正態分佈的隨機數的程式?

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

5樓:匿名使用者

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

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

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

如何使用matlab產生指數分佈的隨機數

6樓:戀圈圈兒

在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;

7樓:匿名使用者

exprnd(2,3,4)

產生3行4列均值為2的指數分佈隨機數

用matlab生成一組隨機數,比如生成200個數,然後取前100個數,求這100個數的均值和方差,怎麼寫程式?

8樓:眼疾手快

randi([0 100])可以生成一個0到100的隨機數randi([0 100],n)生成一個n*n矩陣的隨機數randi([0 100],m,n)是一個m*n的矩陣不知道你想要哪種

matlab 中怎樣按概率產生隨機數?

9樓:匿名使用者

function y=genrannum1(n)%本函式產生n個指定概率分佈的隨機數,本例中的%概率密度函式為f(x)=(1-x*x)/(1+x*x)/(pi-2) |x|<1

min=-1;% 概率密度區間的左邊界

max=1; %概率密度區間的右邊界

uper=1/(pi-2);%概率密度函式的上確界%rand('state',0);sum(100*clock)for k=1:n

x1= min + (max-min).*rand(1);

x2=uper*rand(1);

x3=(1-x1*x1)/(1+x1*x1)/(pi-2); %此處為指定的概率密度函式f(x)的位置

while x2>x3

x1= min + (max-min).*rand(1);

x2=uper*rand(1);

x3=(1-x1*x1)/(1+x1*x1)/(pi-2);

endy(k)=x1;end

10樓:匿名使用者

a=randsrc(1,3,1:100)

這個函式的意思是產生一個1*3的隨機陣列,取值是從1到100等概率的。

設s為a的某個元素,你可以假定:

如果 s<=40 則 s'=a

如果 41<=s<=65 則s'=b

如果 66<=s<=100 則 s'=c這樣做可能比較麻煩,應該有直接實現以上功能的函式。

你可以查一下。

我也是初學者,共同學習,望採納

11樓:

採用輪盤賭法,把100看做一個輪盤,則產生1-40之間的數概率為40%,41到65之間的數概率為25,66到100之間的概率為35%。

怎樣在matlab中輸出雷克子波

雷克子波及其振幅譜的matlab輸出 fm 50 主頻 dt 0.001 時間域取樣間隔 number 100 取樣點數 t number 2 1 number 2 a 1 2 pi fm t 0.001 2 exp pi fm t 0.001 2 subplot 2,1,1 plot t,a ti...

Matlab中怎樣在矩陣中找出所有大於某固定值的元素

如a 1 2 3 4 34 2 6 7 34 45 65 54 b find a 10 那麼就會輸出b 2 3 6 9 12 這是以列優先的單下標輸出方式輸出下標 matlab中怎樣在一個矩陣中找出所有大於某固定值的元素 如a 1 2 3 4 34 2 6 7 34 45 65 54 b find ...

在matlab中,矩陣a怎樣產生34的矩

repmat a,3,4 就是把a當做一個元素對其進行復制,複製成3行4列。如何在matlab中生成一個1,2,3,4.n的列向量?a 1 n這樣設定就可以抄了。具體步驟 bai 1 順序產生一個 1,2,3,4 的矩du陣zhi,那就直接a 1 4 就可dao以了。2 產生一個n m維的矩陣,矩陣...