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維的矩陣,矩陣...