Matlab生成資料

2021-10-19 13:13:28 字數 3045 閱讀 5049

有四種基本隨機數函式:rand、randi、randn 和 randperm。rand 函式返回在 0 和 1 之間均勻分布的實數。例如,

r1 = rand(1000,1);

r1 是乙個含有均勻分布浮點實數的 1000 x 1 的列向量。r1 中的所有值均處於開區間 (0, 1) 內。這些值的直方圖大致上是扁平形狀,這表明取樣數相當均勻。

randi 函式返回離散均勻分布中的 double 整數值。例如,

r2 = randi(10,1000,1);

r2 是乙個包含範圍在 1,2,…,10 的離散均勻分布整數值的 1000×1 列向量。這些值的直方圖大致上是扁平形狀,這表明從 1 到 10 之間取樣數相當均勻。

randn 函式返回標準正態分佈中的浮點實數陣列。例如,

r3 = randn(1000,1);

r3 是乙個含有標準正態分佈數的 1000 x1 的列向量。r3 的直方圖看似大致上均值為 0 且標準差為 1 的正態分佈。

可以使用 randperm 函式建立沒有重複值的隨機整數值陣列。例如,

r4 = randperm(15,5);

r4 是乙個包含在閉區間 [1、15] 內隨機選擇的整數值的 1 x 5 陣列。與可返回包含重複值的陣列的 randi 不同,randperm 返回的陣列沒有重複值。

接連呼叫上述任一函式均可返回不同的結果。這種特性適合用於建立幾個不同的隨機值陣列。

本示例顯示如何通過首先指定種子來重複生成隨機數陣列。每次使用相同種子初始化生成器時,始終都可以獲得相同的結果。

首先,初始化隨機數生成器,以使本示例中的結果具備可重複性。

rng(『default』);

現在使用種子 1 初始化生成器。

rng(1);

然後建立隨機數陣列。

a = rand(3,3)

a =

0.4170    0.3023    0.1863

0.7203 0.1468 0.3456

0.0001 0.0923 0.3968

重複同樣的命令。

a = rand(3,3)

a =

0.5388    0.2045    0.6705

0.4192 0.8781 0.4173

0.6852 0.0274 0.5587

第一次呼叫 rand 改變了生成器的狀態,所以第二次呼叫的結果不同。

現在使用之前的種子重新初始化生成器。然後將再次生成第乙個矩陣 a。

rng(1);

a = rand(3,3)

a =

0.4170    0.3023    0.1863

0.7203 0.1468 0.3456

0.0001 0.0923 0.3968

在某些情況下,只設定種子並不能保證相同的結果。這是因為**執行時,隨機數函式所用的生成器可能與您所期望的不同。要確保長期可重複性,應同時指定種子和生成器型別。

例如,以下**將種子設定為 1 並將生成器設定為梅森旋轉。

rng(1,『twister』);

當您希望實現下列結果時,應同時設定種子和生成器:

應確保如今編寫的**在以後的 matlab® 版本中執行時該時可返回相同的結果。

應確保在使用當前版本時,您在以前 matlab 版本中編寫的**可返回相同的結果。

在執行他人的隨機數**之後,再重複自己**的隨機數。

請參見 rng 參考頁來了解可用的生成器列表。

儲存和恢復生成器設定

本示例顯示如何通過儲存和恢復生成器設定來建立可重複隨機數陣列。需要儲存和恢復生成器設定的最常見原因是為了重現演算法或迭代中某一特定點產生的隨機數。例如,可以在除錯時使用生成器設定作為輔助工具。

首先,初始化隨機數生成器,以使本示例中的結果具備可重複性。

rng(1,『twister』);

在結構體 s 中儲存生成器的設定。

s = rng;

建立 1 到 10 之間的隨機整數值陣列。

a = randi(10,3,3)

a = 3×3

5     4     2

8 2 4

1 1 4

重複同樣的命令。

a = randi(10,3,3)

a = 3×3

6     3     7

5 9 5

7 1 6

第一次呼叫 randi 改變了生成器的狀態,所以第二次呼叫的結果不同。

現在,將生成器恢復為在 s 中儲存的初始狀態,並重新生成第乙個陣列 a。

rng(s);

a = randi(10,3,3)

a = 3×3

5     4     2

8 2 4

1 1 4

與重新提供種子(該方法會對生成器進行重新初始化)不同,此方法讓您能夠隨時儲存和恢復生成器的設定。

新增鏈結描述

r = unifrnd(a,b) 連續

r = unidrnd(a,b) 離散

生成被a和b指定上下端點[a,b]的連續均勻分布的隨機數組r。

如果a和b是陣列,r(i,j)是生成的被a和b對應元素指定連續均勻分布的隨機數。

如果n或p是標量,則被擴充套件為和另乙個輸入有相同維數的陣列。

r = unifrnd(a,b,m,n,…) 或 r = unifrnd(a,b,[m,n,…])

返回mn…陣列。

如果a和b是標量,r中所有元素是相同分布產生的隨機數。

如果a或b是陣列,則必須是mn…陣列。

新增鏈結描述

%建立乙個從1到10的100個線性間隔的向量,大小為1x100;

s6 = linspace(1,10);

%建立乙個從0到10的6=[(10-0)/2+1]個線性間隔數的向量,大小為1x6;

s7 = linspace(0,10,6);

參考

TPC DS 生成資料

其實,使用 tpc ds 生成系統效能測試的資料,說簡單也簡單,說難,確實也不好做!關鍵是在每一步的操作中,如果遇到了問題,該怎麼樣處理,這個是個問題的關鍵。下面就將生成的步驟簡單描述一下,好記性不如爛筆頭呀!通過以上六步驟,就可以將 tpc ds 資料全部 load 到對應的表中去,也就生成了相應...

15 章 生成資料

畫乙個1 5的平方 匯入模組 import matplotlib.pyplot as plt squares 1,4,9,16,25 將列表傳給它 plt.plot squares 開啟matplotlib檢視器,並顯示所繪製的圖形 plt.show import matplotlib.pyplot...

Excel隨機生成資料

concatenate函式是乙個文字連線函式,非常簡單,和 的效果一樣。concatenate是乙個文字連線函式 語法 concatenate text1,text2,text3.其中text表示乙個個要連線起來的文字。隨機小寫字母 char int rand 25 97 隨機大寫字母 char i...