Matlab中如何使含有隨機數的函式重複執行1000次?用f

時間 2022-01-13 12:20:12

1樓:破車偽球迷

你的理論值是多少?我執行了多次,發現是0.9幾

在matlab中,在1到1000中,生成十個隨機數。共兩百個樣本。怎樣讓它執行兩百次?

2樓:匿名使用者

you can use:

for i = 1:200

disp('something you want to run 200 times!')

endit will run 200 times.

matlab中用一萬以內的素數作為隨機數種子(大概有1000多個),然後跑某個函式s(1000多次),請問如何完成

3樓:劉賀

這關鍵要看你的函式s是什麼了?素數種子倒是好求:

clear all;clc;

x=1:10000;

idx=isprime(x);

xp=x.*idx;

xp(xp==0)=;

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

4樓:匿名使用者

整數吧?如果是浮點數,直接用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

5樓:匿名使用者

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

6樓:喬心雨

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

7樓:流星日食

clcn=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中如何實現自定義的輸出隨機數

8樓:匿名使用者

num=200; %生成隨機數的個數

i=1; %不相同元素的間隔

out=zeros(1,num); %先為out分配空間

b=randperm(100);

b=b(1:i); %b為1-100中i個不重複的隨機數

for k=1:num

c=setdiff(1:100,b); %從1-100中扣除b中的i個數

new=c(randi(100-i,1)); %new是剩下的100-i個數中隨機抽取的一個

out(k)=new; %將新生成的new儲存到out矩陣

b=[b(2:end) new]; %去除b中的第一個數,將new放到b最後

endnum用於輸入要生成隨機數的個數

i是不同元素的要求間隔

的到的out就是符合條件的隨機矩陣

主要就是利用b去儲存前i個已經生成的隨機數

迴圈:然後從1-100的100箇中取出b中的i個數

從剩下的數中隨機抽取1個數,這個數肯定不會和前面的i個數重複

儲存這個新生成的隨機數

捨棄b中的第一個數,將新隨機數放到b末尾

新的b還是i個不重複的隨機數

然後重複迴圈,直到生成的隨機數個數滿足num的要求

matlab中用rand函式生成1000個隨機數的程式?

9樓:遊蕩的汰沐

clear;

clc;

a=;for i=1:1000

a(i)=rand; %隨機生成一個隨機數放入a(i)中i=i+1;

enda

怎麼呼叫matlab中函式,編寫m檔案,生成服從均勻分佈的隨機數?

10樓:匿名使用者

用matlab的rand()和unidrnd()產生服從均勻分佈的一組隨機數

rand(m,n)產生m行n列的【0,1】均勻分佈隨機數

unidrnd(n,m,n)產生m行n列的數值小於n的【0,n】均勻分佈隨機數

>> rand(3,5)

ans =

0.8147    0.9134    0.2785    0.9649    0.9572

0.9058    0.6324    0.5469    0.1576    0.4854

0.1270    0.0975    0.9575    0.9706    0.8003

>> unidrnd(100,3,5)

ans =

15    80     4    68    40

43    96    85    76    66

92    66    94    75    18

11樓:素素姐愛上

還需要m檔案嗎看直接rand*2-1就可以了(rand函式可帶引數指定生成陣列的維數):

>> rand(3,4)*2-1

ans =

0.8116    0.2647    0.0938   -0.6848

-0.7460   -0.8049    0.9150    0.9412

0.8268   -0.4430    0.9298    0.9143

12樓:匿名使用者

rand(m,n)會產生mxn大小的矩陣,矩陣的每個元素符合0~1的均勻分佈。

rand(n)會產生一個維度是n的列向量,每個元素符合0~1的均勻分佈。

rand()函式會返回一個0~1之間的隨機數。

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

13樓:草是一顆植物

即產生隨機排列:

p = randperm(n) returns

a random permutation of the integers 1:n.

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

randperm(31-16+1)+15

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

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

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

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

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

matlab產生隨機數,急求matlab產生隨機數

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 ...

matlab中如何產生n個隨機數,和為定值

yty隨意 1 首先在電腦中,找到並開啟matlab軟體,二項分佈隨機數的產生。2 接著輸入二項分佈隨機數x b n,p n為發生次數,p為發生概率,如下圖所示。3 然後輸入泊松分佈,引數為p,如下圖所示。4 接著輸入指數分佈,引數為 如下圖所示。5 最後正態分佈,x n 2 如下圖所示,就完成了。...

Matlab如何生成正太分佈隨機數,並畫出直方圖

by dynamic see also n 20 二項分佈選用的引數n p 0.8 引數p data binornd n,p,100,100 每列一個樣本 data mean data 求均值hist data,50 快樂的秋風 如果需要的是頻率直方圖,可以考慮如下做法 x normrnd mu,s...