matlab中怎樣生成區間內不重複的隨機數

2021-03-04 05:43:14 字數 2408 閱讀 4030

1樓:草是一顆植物

即產生隨機排列:

p = randperm(n) returns

a random permutation of the integers 1:n.

所以要產生[16 31]的隨機排列,可以執行:

randperm(31-16+1)+15

隨機數是專門的隨機試驗的結果。在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

產生隨機數有多種不同的方法。這些方法被稱為隨機數發生器。隨機數最重要的特性是:它所產生的後面的那個數與前面的那個數毫無關係。

真正的隨機數是使用物理現象產生的:比如擲錢幣、骰子、轉輪、使用電子元件的噪音、核裂變等等。這樣的隨機數發生器叫做物理性隨機數發生器,它們的缺點是技術要求比較高。

在實際應用中往往使用偽隨機數就足夠了。這些數列是「似乎」隨機的數,實際上它們是通過乙個固定的、可以重複的計算方法產生的。計算機或計算器產生的隨機數有很長的週期性。

matlab如何產生不重複的隨機數啊?

2樓:匿名使用者

整數吧?如果是浮點數,直接用rand就行,重複的概率極低。

樓上的兩個回答,乙個生成的是浮點數,另乙個不能保證抽樣的均勻性(從結果可以看到,資料集中在10-30之間)。

生成不重複整數的問題其實是乙個不放回隨機抽樣的問題,可以使用下面的這個函式:

function s = sampling(r, n)

% 選擇抽樣,r為記錄集合,n為抽取的樣本數

% 演算法參考:d. e. knuth, taocp, vol.2, pp142,稍有改動

% 編寫函式時用的測試資料

if ~nargin

r = 1 : 8;

n = 4;

endn = length(r);

t = 0;   % 處理過的記錄總數

m = 0;   % 已選得的記錄數

while 1

u  = rand;

if (n-t)*u < n-m

m = m + 1;

s(m) = r(t+1);

% 若已抽取到足夠的記錄,則演算法終止

if m >= n, break, end

endt = t + 1;

end呼叫例項:

>> sampling(1:100,8)

ans =

8    21    24    31    42    85    91    92

3樓:匿名使用者

rand(1,8)*100

ans =

columns 1 through 7

81.4724 90.5792 12.6987 91.3376 63.2359 9.7540 27.8498

column 8

54.6882

4樓:喬心雨

x=randperm(100);x=x(1:8)

5樓:流星日食

cl**=20;

a=ceil(rand(1,20)*100);

[b, m, n]=unique(a);

d=b(1:8)

執行結果

d =12 18 19 20 21 23 24 26

請教各位,如何使用matlab程式生成100個1~10範圍內的不重複隨機排列?初使matlab,望指點。

6樓:安菲爾德騎士

功能:matlab中通過rand函式du產生rand產生的是zhi0到1(不包括1)的偽隨機

dao數。

用法:回

rand(m,n)產生答m×n均勻分布的隨機矩陣,元素取值在0.0~1.0。

x=rand(1,10);產生10個0~1的隨機數。

示例:a=rand(2,3)產生乙個二行三列的隨機矩陣:

a =0.9218 0.1763 0.93550.7382 0.4057 0.9169

生成100個1~10範圍x=10*rand(1,100);

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

7樓:匿名使用者

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

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

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

怎樣用MATLAB生成深度影象(即用顏色深淺表示z座標)

a imread mydata.ppm minv min min a ppm讀的資料都是 抄uint8,也就是 0,255 不過為了讓這段bai 更通du用一些,我特意進行了這樣的zhi處理。row col v find a minv 1 result col row v minv 1 最終結dao...

在matlab程式設計中,如何生成如下圖的二維座標矩陣

1 普通的數值矩陣的元素只能是乙個數,不可能是這樣的數對。要儲存這樣的數對,一般採用cell陣列,例如 y,x meshgrid 1 4 c arrayfun x,y x,y x,y,uniformoutput false c 1x2 double 1x2 double 1x2 double 1x2...

請問,在函式中,某一確定區間內,極小值與最小值,極大值與最大值,有什麼區別嗎

區別在於,最大值和最小值,是在這個函式定義域上,值域的最大取值和最小取值 極大值和極小值,是在這個函式定義域上的某個子集,值域的最大取值和最小取值 換言之,定義域可以劃分成多個區間,來考察其值域的範圍,即是極大值和極小值 最小值是極小值,但極小值不一定是最小值 即最小值是幾個極小值中最小的 我也是搜...