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