如何在matlab中將一組資料隨機抽樣,並且抽樣的結果要有重複呢

2021-03-26 07:04:02 字數 5326 閱讀 4516

1樓:匿名使用者

l = 10;%資料長度

disp('原始資料:')

arr = 1:l %生成資料

sampleindex = randi(l,20,1);%隨機抽樣運算元,隨機採20個樣本

disp('隨機取樣出的資料:')

arr(sampleindex)

一個小的demo程式,希望能對你有所啟發

怎麼用matlab對資料進行多次簡單隨機抽樣

2樓:匿名使用者

設資料存

copy放於向量a中,需要重複n次簡單隨機取樣,程式及說明如下:

m=length(a); %dimensionidx= ceil(m*rand(1,n)) ; %generate n random index between 1 and m

b = a(idx) ; % sampling

3樓:匿名使用者

另外,同溫條件下可以多尋找一些新生個體。最後,發揮matlab的並行運算功能,也就是對退火演算法進行群體優化,這樣,相對於單一個體來講,具有更強大的全域性搜尋能力。

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樓:流星日食

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 哪個函式可以從一組資料中隨機抽取一部分出來

8樓:匿名使用者

假設你原來的資料存在變數a中

如果,你想從a中隨機抽取固定n個數

c=randperm(numel(a));

b=a(c(1:n));

b就是從a中隨機抽取的n個數(n應該小於a中元素的總個數)

9樓:釋奧凌茜

1.使用xlsread讀取進matlab

得到矩陣data

2.獲取列數

col= size(data,2);3.

隨機提取一列回資料randcol

=randi(col)

4.求標準差答

std(data(:,randcol ))

10樓:戴爾

matlab裡有現成的函du數 datasample, 呼叫方法:zhi

y = datasample(data,k,dim)例子:dao

data=randn(10,200); % 生成尺寸為10*200的資料回

y = datasample(data,5,1); %從data中隨機抽取5行資料

--------------

參考:頁連結答">網頁連結

matlab中怎樣隨機從一組資料中取一個數

11樓:匿名使用者

一句話bai的寫法可以

用:a=[23,44,52,99];

a(ceil(rand*4))

其實沒必要du過於糾zhi結用一句,先抽下標的dao做法回可讀性更好。

關於ceil(rand*4)抽樣的答均勻性,可以用下面語句很簡單地進行驗證:

hist(ceil(rand(1000000,1)*4))

12樓:匿名使用者

(randi(4,1,1)==(1:4))*[23 44 52 99]'

或者a=[23 44 52 99];

a(randi(end,1,1))

matlab如何從一組資料中無重複的隨機選取幾個數

13樓:依然特雷西

1、首bai

先知道matlab中刪除矩陣重複資料du

,可以用到unique函式,數

zhi組的唯一值,在dao

命令列視窗下內help unique,可以看到函式容的具體用法。

2、在命令列視窗中新建一個a=[1 3 4 5 6 6 7 8 9 8]矩陣,裡面有重複資料6,8。

3、輸入unique(a),按回車鍵,可以看到a矩陣重複資料全部刪除了,矩陣元素全部都是唯一值。

4、如果我們輸入unique(b),按回車鍵,會得到一列刪除重複資料後的結果。

14樓:匿名使用者

使用randperm函式。詳細參閱help檔案。

a=randperm(10);

b=a(1:5);

aa=a(b);

那麼aa就是所取出的隨機樣本。

15樓:匿名使用者

temp=randperm(n,m);%從1-n個元素中隨即取出m個元素,m的值由你指定

不過2010版本的不行,2011b才能這樣用這個函式

16樓:延靖茹林

用randperm

我給你舉個例子吧:>>

b=1:10b=1

2345

6789

10>>

a=randperm(10)a=1

91083

7526

4>>b(a(1:5))ans=1

91083

matlab 中要對一列資料進行n次抽樣,該怎麼寫程式,是要用到哪個函式嗎?謝謝!

17樓:匿名使用者

假設資料是a

只要b=a(1:n:end);

就可以每隔n個資料抽取一次樣品資料

matlab裡面如何實現隨機不放回抽樣?注意是不放回,randsample只支援放回抽樣。

18樓:匿名使用者

a=你要抽樣的陣列

a=randperm(length(a));

b = a(:, a);

b就是隨機不放回抽樣的抽樣順序了

19樓:匿名使用者

%樓主可以看一下,僅供參考

y=randperm(33);%1到33的一個序列red=zeros(1,6);

for j=1:6%迴圈不放回抽走6個數

index=randi(34-j,1);

red(j)=y(index);

y(index)=;%去掉回抽走的數

答,接著抽樣end

matlab中,怎樣把一組給定的資料隨機排列?

20樓:四舍**入

可以參考下面的**:

x=x(randperm(numel(x)))numel(x)獲得變數長度

randperm(n)產生長度為n的隨機數列 如:

randperm(4)

ans=

3 2 1 4

x(...) 取得x中相應元素產生新數列

21樓:

使用函式randperm()即可實現。

例:a = [7,6,3,9,10];      % 試驗矩陣【用於試驗,矩陣元素為待隨機排列的資料】

randindex_a = randperm(5);  % 生成1到5這幾個數的隨機排列

b = a(randindex_a);       % 隨機排列後的矩陣

每一行**執行結果:

>>a = [7,6,3,9,10]

a = 7 6 3 9 10

>>randindex_a = randperm(5)randindex_a =1 4 5 3 2>> b = a(randindex_a)b =7 9 10 3 6

擴充套件資料函式randperm()

1、語法格式:r = randperm(n)2、函式功能:將數字1:n進行隨機排列,排列結果儲存在行向量內3、例:輸入 randperm(3)

輸出 3 1 2

4、使用的方法:

利用索引值的隨機排列,生成所有元素的隨機排列

22樓:

x=x(randperm(numel(x)))numel(x)獲得變數長度

randperm(n)產生長度

為n的隨機數列 如:

randperm(4)

ans=

3 2 1 4

x(...) 取得x中相應元素產生新數列

23樓:匿名使用者

同意2樓的觀點

就是這樣,當然你也可以使用rand等生成其他隨機數

如何用matlab畫一組資料的折線圖

給你個具體例子 2000年到2010年我的身高資料如下 h 165 168172 176178 179180 181182 183 則對應的matlab 是 years 2001 2010 h 165 168172 176178 179180 181182 183 plot years,h 多組資料...

如何計算一組資料的波動率,如何計算一組資料的穩定程度

波動來率 有重要意義 的第源二高 低 點 有重bai要意義的第一髙 低 兩高du 低 點間的時間。zhi這個公式的意dao義是 1 是根據歷史的資料。進一步講,新股只有經過一段時間的運動觀察後,才可以進行 2 重要的低點是判斷的關鍵,點選錯了,就不具有計算的意義。3 高低重要 支 點的選擇要注意與時...

用matlab擬合一組資料要求得出函式表示式

根據給定的資料bai,我們可以假定 du函式表示式為 y b1 b2 x b3 x zhi2 b4 x 3 b5 x 4 所以上述函dao數版可以用matlab的regress 多權元線性迴歸分析函式來擬合。實現過程如下 a 1.75,0.26 2.25,0.32 2.5,0.44 2.875,0....