1樓:匿名使用者
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
0.5469
0.9575
0.9649
0.1576
0.9706
0.9572
0.4854
columns 12 through 220.8003
0.1419
0.4218
0.9157
0.7922
0.9595
0.6557
0.0357
0.8491
0.9340
0.6787
columns 23 through 330.7577
0.7431
0.3922
0.6555
0.1712
0.7060
0.0318
0.2769
0.0462
0.0971
0.8235
columns 34 through 440.6948
0.3171
0.9502
0.0344
0.4387
0.3816
0.7655
0.7952
0.1869
0.4898
0.4456
columns 45 through 500.6463
0.7094
0.7547
0.2760
0.6797
0.6551
>> ans*15+15
ans =
columns 1 through 10
28.7006
24.4854
16.4631
19.1775
23.2032
29.3626
29.4733
17.3642
29.5589
29.3575
columns 11 through 2022.2806
27.0042
17.1283
21.3264
28.7360
26.8831
29.3924
24.8361
15.5357
27.7369
columns 21 through 3029.0099
25.1810
26.3661
26.1470
20.8834
24.8322
17.5678
25.5907
15.4775
19.1538
columns 31 through 4015.6926
16.4570
27.3519
25.4224
19.7565
29.2533
15.5167
21.5812
20.7234
26.4828
columns 41 through 5026.9280
17.8031
22.3465
21.6838
24.6947
25.6405
26.3203
19.1404
25.1955
24.8265
>> round(ans)
ans =
columns 1 through 18
2924
1619
2329
2917
3029
2227
1721
2927
2925
columns 19 through 361628
2925
2626
2125
1826
1519
1616
2725
2029
columns 37 through 501622
2126
2718
2222
2526
2619
2525
當然,這個方法的隨機數分佈不是均勻的,邊界有問題,你如說你要生成的隨機數有15中可能
rand產生一個你判斷它是否小於1/15*i,i=1,2,3,...15大於1/15*(i-1),是的話,這個數就是i
沒看清題,不好意思,同樓上,x、y沒有約束,如果x、y也是正整數,你隨機出來,x+y的值,然後,x就是1到x+y在隨機一次,y就是差,不過要滿足某種分佈還不知道如何做
2樓:匿名使用者
這個可以使用rand來生成,比如:% by lyqmathclc; clear all; close all;
15 + 15*rand(1, 2)結果
ans = 16.9048 28.7006>>
3樓:匿名使用者
%chanshengx+ya=15+15*rand(1);%chanshengyigexx=30*rand(1);y=a-x;
急求matlab產生隨機數 5
4樓:匿名使用者
檢視rand()和randn()命令,玩matlab要學會看manual
5樓:匿名使用者
你要表達什麼?不明白
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;
如何用c 產生隨機數,如何用C 產生隨機數?
在煙幹辰 rand 這個函式就是產生隨機數的,想要一個範圍的隨機數,可以用取餘數的方式 如取0 99之間的數,可以rand 100 需要使用rand 和srand 函式 rand 為隨機數函式,產生 0,int型最大值 之間的整數數 srand seed 為初始化隨機數種子函式 具體例子如下 inc...
matlab中如何產生n個隨機數,和為定值
yty隨意 1 首先在電腦中,找到並開啟matlab軟體,二項分佈隨機數的產生。2 接著輸入二項分佈隨機數x b n,p n為發生次數,p為發生概率,如下圖所示。3 然後輸入泊松分佈,引數為p,如下圖所示。4 接著輸入指數分佈,引數為 如下圖所示。5 最後正態分佈,x n 2 如下圖所示,就完成了。...
怎樣用c 編寫隨機數,如何用C 產生隨機數?
c 中生成指定範圍內的隨機數過程為 設定隨機種子srand 生成隨機數rand n 1,生成1 n之間的隨機數 include include rand srand include void main include include using namespace std int main retu...